ML }  X c0C)HCCH Mhhݩh `eCDiCD`  RyHP   * 1H0芢@) Y0.Ș` i #(PMR\ \b Pgi 0  % @ / ՠ`d   0DDԝLyN@  )?HI Y0`HIJH) * J j * hJJJ )HJ h i     } YS S0 i`΢ϣ߳H J3xj2h} 1 |9 ӭ45(420 * (0241өX.`  R *i)Lvw  ~*P}E 5 LN(G E  r s k rsrL ( E LO(0d( L iE0O +)$IC  H S8 }q p h   j 8no CDLQ CFl M  LO Ri)Llk2'")*F }$F$F$F$F$ 5 )ШF/Șl]kpqС,LQ/A! Ti)Zlk@ ܬ/i)(")")k }$F$F$F 5$/L /lF@jj(LNkle$$%8(k()` R 8 ELO Ri)^>jf | NrC s } ) vw5g   enfo Glvw LQ@iLm>j FL ~Jjjjii p qEh }jlrs`LQ:$ȱ$@+[_#{ 8  Խut! ai 8   E I   ] C } H h    ˰ 8  N   Lm E  ,  [ `LQ ,/ 8 ~/  Ơ? ѩ}/  [ /Lj0?MoLn FjMqLp NklLOLQnLoMlNLO R"(+}ըHH`Q R!!  % !   / .   FȑF! /GF \H"+0+* }! F tLQnm: J~nTF1F  *n+)5! n (, n)1JJJn(n*o} I ,0  ci a oF? @ , 8,0 ʩ0H Eh   i}  D ]DmmFLQvtu`*&!*@h ] 0 ^0` c 0l$$%}()()%*&J%H,@hH hH@,h $% 8i8$(%)0hhH ]h`() c 0H c 0 h}`hhh&JJ ](ll  LQ0  /qnoHH 9 9 H H  I9  9 } Nd EH  Q8 o n  FnoL HII/ Ih8`h`Lnon`no`u F }E VEhLO/luF l0BF/lɜɛ׽hE N  b VFL FREE SECTORS C} H) *Fh ):FȽ F FC IH' 0 d  i:Fȩ/F.l`CD/08HDIC}IHȰ/F`ȱ$>.+.i ȱ$:刄H !A \ Hȱ$*?ȝ 2. ? [_{ ,0}-:) 0$:>WI  IТ,LQH  0hLd ~ t u`C ?( 0(C.` E } R =! .ti S0N EE D XC )0')AY  )ע ? 0E088FG \o}n  (HhLcL3 iJ i Lqp 0=rspnqopqlk`jZj0  j FL`H}FhȑFȽlFi0 h FFLFpvqwgneofLF pq7  G0i 0 FJJh1FqȱFpȱFk`B!}08`hEE D 8. =D}tui( TʩL`b!)    cȌaȌd b`aab}H8 hdaHcd8 cH hHH  \h hc` =Hh I8ih( t  ( t(!` L\}CJfCJfCJfCDfC` a  HII  INdh  `h  `n)8jHniPoijIjFIjFIjh` a } I 38  8H0 I  ' H LQ8j Y  8j NdY  &I &I &IHeH.p!}Iiq  `!.莿 2Jjj }.m Ȉ!m FG` ɩLQ z "} e Hi04 \ Ȍ  8 i h !`I0 `C Y8.`DOS SYS#} I  ` ~ݩ.C/`ba.m۩mѤC9 `C L] H  ,- '0 l $}, BLVDE`D1:AUTORUN.SYS8hhJ ȱHȱIȱBȱDȱEeeHHLV)  %}1*  ,,p-  0 I &  '0   Lw)l, 0  I&LD1:MEM.SAV&}E:D1:DUP.SYS[@V@ 4A(@X`q| }@F}@$vU[ 6J0`]H䷅ l 5'} D  C D     )16CS S)  C)D1 p p (}0 C9DI pCDL~CiCDiD` DD˙` d J)L !)}D L(( LL()  L| L( S LH 0p n  *} CY?  q  L L  ` )+} `A! d߰")-݆ "  $G@LLL&0") $G%,}H0 3S8`G ȱG ȱG   Gȭ Gȭ GG}GHiH8(()) G$H% `(0-})8` d)L ݆ & LGȘ ݆LL d  ! LL d)N>Q  HH).}  hyhyB q L> Lm JJ  Ln*` dB%'/}8  H H` 1 { LL   !L     Hh SY?  q  1L0}  !? S   q 1 L   Ll  Lg E`L   !L)  q 1L1}) `L0AM݊L݉ ML  N݆LLLNLMLHG!@2}1F GȱGLLEEȩÑEȑEEȑE Ed E7EȩE  q3} L !,0,0SGɛ L 1 !L EHEh W G gLLSROTCES EERF 4} G) *Gȩ GȽG GȌd q q G`  8   0G  `D5}CEDC0X:Ȣ Y ȱC* ? 0.. , 0%n ?A[ 0 : L`L  `, 0`Y6}`piH n0)բY? 08`0 7}  0$L GGȽG L `8L`L8}8`  05G)݁,G)ȱGȱGHh0})Hh` B! 8`8iiiLE`9}E8FEh( l0`ɃLL L8^~jj8jHi hEEEiEȱEiE` dTE:} H8EEȱEEȩEh J E8   . m  i`LI!)E1FR;}1LJ舩9GIH`LJJ`HGHh l`<} S gL   8 rii `дCDCG W  =}C  Lq` X٨`DOS SYS IIIIIIIIIIIIIIIC`0 ߩ0}}>} HE |||||DOS DOSDOS SYS }?}}@}CDOS SYSA} 0`BDELV !B B}`LVUQ   ]   TU J ]L!T  #      TU C} L ? .  t`GBJ V~DEHI B V0dVD}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEhE}DEL8HI   0 HI,0 0  9 .G VLOF},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHIG} V0 0`B;DELV䌚 !B y`@ʆ v s? F0Ξ05: [ BDEHIH} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO I}STILL RUN DOS B;DE J V (` 9 V⪍ ઍ  -J}LLu DEHILV 9 .l 9 .l  `` s$B VBHK}I|DE V BLV nB,DE J V* \*` B V BLVDEHI BLVLL}1 3u H232435; 1 ;  hh@2 e1i1LHҍ 00) 08 109hh@ Ҡ2eM}1i1232435ޥ<<8} NACMPT$$O}$$Ҡ̬ԭРҺ$$à$$àЭ$$P}Ҡ$$$$$$Q}$$ĠŠҠ $$ <<;@,;@,;@,;@,R};A0,6.>:@', A `(@(}(2 (1. PICA NORMAL-(10cpi)<(2. ELITE(12S}cpi)F(3. CONDENSED(17cpi)P (4. PROPORTIONAL SPACINGZ##(5. DOUBLE WIDTH CHARACTERSd(6. BOLD PRINTnT}(7. UNDERLINED PRINTx(8. DEFINE LINE SPACING$$(9. RESET PRINTER'S DEFAULTS(( 0. TO END/( @U}@+(WHAT'S YOUR CHOICE../("@3>:@x,( Ap("@3>:@i,( Ap("V}@3>:@,( Ap("@3>:@,( Ap&"@3>:@,& Ap("@W}3>:@3,( Ap("@3>:@,( Ap"@A "@  A `"X}A @ @@.(.(" DO YOU WANT TO COMBINE? (es/o)"4YAP,4NA @6 ApY}@ (} ((J(1. LEFT MARGIN SETT(2. HORIZONTAL TAB SET^##(3. UNIDIRECTIONAL PRINTINGh(4. REVEZ}RSE LINE FEEDr(5. LINE FEED PITCH|!!(6. PERFORATION SKIP OVER(7. DEFINE PRINT TYPE$$(8. RESET PRINT[}ER'S DEFAULTS(( 0. TO END/( A +(WHAT'S YOUR CHOICE../"@A0"@A\}("@3>:@b,( A("@3>:A,( A"@A"@A]}@"@@@"@ A `"A @ A  (} ((""( SET LEFT MA^}RGIN TO: XXX&'( ('( XXX MUST = 000 TO 16001(1(& DEPENDING ON CHARACTER PITCH SETTING:*( (&( SET LEFT_} MARGIN TO: *D)2000)31606.000) ApN3>:@v,X Ab (} ((l//(' HORIZONTAL`} TABS XXX,XXY,XXZ (UP TO 32)v0( (0(" TAB STOPS MUST BE 000 TO 1601(1(& DEPENDING ON CHARACTER PITCH SETTINGa}2(2(' caution: no error trap in this option!( (( SET TABS TO :!3>:@@,>:@F,(($(b} HORIZONTAL TABS SET AT:(  A (} ((##(LINE FEED PITCH SETTING XX"("( XX MUST = 01 TO 9c}9(( 18 = 1/8 INCH!!( 24 = 1/6 INCH (NORMAL),( (((SET LINE FEED PITCH TO: ,400Ad}3>:@, 9(&( LINE FEED PITCH SET AT: + 9  /144 INCH0(0($ DO YOU WANT TO COMBINE? (es / e}o) *4YA 44N> AH##@@P:R<*@@))*@f}@e<*@@d\-@@`f-*@@d)*@@d- p)*@@g)*g}@@dz-@b@f-*@@d)*@@d- )*@@e)*@@dh}*@@0@3 A'('(PROGRAMING IS NOW COMPLETE.$-@A ! }$i}BB3>:@x,>:@y,>:@,>:@4,L000GD3>:@,>:@H,>:A,>:@e,>:j}@`,G$ D2:PROSET.BAS>:@,>:@4,L000GD3>:@,>:@H,>:A,>:@e,>:!80 DIM F1(11),F2(11),C1(11),C2(11),PN$(20)90 FOR X=0 TO 3:SOUND X,0,0,0:NEXT X:POKE 53768,120100 FOR X=0 TO 11:READ A,B,D,El}:F1(X)=A:C1(X)=B:F2(X)=D:C2(X)=E:NEXT X230 POKE 53762,C1(N):POKE 53760,F1(N):POKE 53766,C2(N):POKE 53764,F2(N)240 POKE 5376m}7,168:POKE 53763,168:REM *** LEAVE TONE ON A MOMENT ***270 POKE 53767,0:POKE 53763,0350 DATA 150,2,176,3360 DATA 221,2,253n},4370 DATA 150,2,253,4380 DATA 87,2,253,4390 DATA 221,2,131,4400 DATA 150,2,131,4410 DATA 87,2,131,4420 DATA 221,2,19,4o}430 DATA 150,2,19,4440 DATA 87,2,19,4450 DATA 221,2,176,3460 DATA 87,2,176,331,4410 DATA 87,2,131,4420 DATA 221,2,19,4Q1244DSDATHEXLINDATLIDDBYTPASCHKSUTOTAIN@ q} *** AVALANCHE ***I @ 1(MAKE CASSETTE (0), OR DISK (1)5 r}I!@@ C BC0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,0,10,11,12,13,14,15(r;@,9@",/- s}@"3"<68,-@ L6-A V#A` A r( CHECKING DATA286-%@(LINE:!"8B:,@ t}A <F%6-F:A,%F:A,$AV+C(LINE  MISSING!FFq-@@@56-@:7<,,& u}@H[6-@:7%@<%@,,&@Hq6-8,$@%8,P."@*@ $". @PZ% 6-% v}!A %6-&Ad  ""@Pn A x F:A,@A "Ap( w}A`*@A$)*@@<*@A%O*@@b*@u*@@2 x}@<-@A**@. 9@<(Ag+("INSERT DISK WITH DOS, PRESS y} RETURN8;@,<g@@ D:AUTORUN.SYS*@AU)*@AU<*@ z}O*@@2b*@@u*@@R A{((READY CASSETTE AND PRESS RETURNH@@ {}A(C:R#A0f-@@@j"w*@{ M(( WRITING FILE#6-@/6-A 9#A |}C A M @P(BAD DATA: LINE ``0,42,216,31,255,31,169,0,141,47,2,169,60,141,2,211,169,0,141,231,2,133, }}14,169,56,141,232,2--133,15,169,0,133,10,169,32,133,11,24,96dd2065E4A9008D08D2A9018584A9AE858520CF2C20DA21208C23200F2 ~}320FA2220AD23205D23A20FBDA6339D3E36,360ddBDB6339DBA37BDC6339DCE37CA10EBAD8402D013208C23200F2320FA22205D23A900854D4C8120AD }1FD0C903D0,228cc19A585C9AED008A9A88585A901D006A9AE8585A900858420AA24A5858D0936A91420D3214C3C2020BD2120C821,64ddAD1206 }09108D1236AD130609108D2636A207BD74339D4236CA10F7A97820D32120BD21A9148D0306AE1306BDD6,982cc338DD822BDDB338DE022BDE0338DE52 }2BDE5338DEA2220BC2320F124A9018D140620AD23AD2006C901F0034C7A,23dd21EE130620E323207924A900854DAD1306C905D013EE1206A9018D130 }6AD12068583200F234C1421A9008D0206,400$dd200F234C812020C821A204BD7C339DBF37CA10F7AD120609108DC537A20BA9968D00D2A9A88D01D2A9 }1C8DD822,117.ddA9888DE022A90620D321A9328D00D2A9888DD822A91C8DE022A90620D321CA10D0A9008D01D220C821AD1206C9,1958dd07D004A }9068583A9008D20068D02064C8120C902F0034C9B21C689A20FA9788D00D28A09108D01D2A90520D321,414BddCA10ED4CA221C689A9018D6F02207924 }A589D00EA208BD81339D4236CA10F74C3C2020FA224C8120A213A9009D,121Ldd3C36CA10FA60A227A9009DB837CA10FA608582A582D0FC60A200BD00E }09D0038BD00E19D0039CAD0F1A22FBDEA,942Vdd339D1838CA10F7A9388DF402A93E8D2F02A9338D3102A9548D3002A9038D1DD0A9388D07D4A9268DC0 }02A9348D,623`ddC1028DC2028DC302A97C8D00D0A9748D01D08D02D08D03D0A9018D6F02A90F8DC402A9288DC502A9888DC602A9,784jddD68DC70 }2A9228D0102A97D8D0002A222A074A907205CE4A900AA9D00369DF036E8E0F0D0F5A9C08D0ED460A582,393tddF002C6824C62E448A9448D0AD48D16D0 }A9228D0102A9928D0002684048A9588D0AD48D17D0A9228D0102A9A78D,269~dd0002684048A5CB8D0AD4C928D012A90085CBA5CC1006A90085CCF004A }98E85CCA5CC8D16D0E6CBA9228D0102A9,692ddD68D0002684048A90E8D0AD48D16D0A9FC8D17D0A9928D18D0A9428D19D0A9228D0102A97D8D000268 }40A9468D,628dd2836A95D8D2936A58938E90109108D2A3660A9368581A9A98580A9018586A486B91A3491808810F8A586186902,355ddC90FF01 }28586A5801869278580A581690085814C1B2320AA24A9008D12368D2636A205BD90339D0C36BD96339D,791dd2036CA10F160A205A9109D0036BD8A33 }9D5036CA10F2A9348D6636A92F8D6736A9078D8D36A9438D8E36A9448D,619dd8F36A9088D903660A9018D120685838D1306A9048589A9008D1406A90 }28D5A06A9608587A910858860A9008D01,774ddD28D03D28D05D28D07D260A583C901F004C904D007ADE0228D942260C902F004C905D007ADE5228D94 }2260ADEA,290dd228D942260A214BD28348D00D2A9AA8D01D2BD3D3420D32120E624CA10E9A23C8E00D220E624A90220D321E8E8,358ccE8E0519 }0EE8E00D220E624A90220D321CACACAE039D0EEA9008DC802A9608587A20A8A09A08D01D2A90420D321,32ddCA10F2A9008D01D2A209BD9C339DBD37C }A10F7AD1C06186901C91AD018AD1B06186901C91AD00EAD1B06186901,363cc8D1B068D0136A9108D1C068D0236A9C820D32160AD0136C588F002B001 }60E688E68920FA22A202A9208D00D2A0,32dd0F9809A08D01D2A90320D3218810F2CA10EDA9008D01D260A5848D1C258D3325AD1206C903D011AD1306 }C901F0,632dd04C903D006A9008D332560AD1206C907D006A9008D1C2560C908F0E9C90990EAA9008D1C25F0DEA58718690285,309dd878DC8026 }020322C20E32CAD2006C900F00160AD2A06C901D0062058254C1525AD78028D3106205825200226AD,882 dd5706C901D00BA9008D5706204D274C2F25 }A9018D5706AD5806C901D00BA9008D58062080254C4625A9018D5806,388dd20CA28200C3220453120262C2060314CF724AD2606C901D00160AD3106C }909D0034C0E2FC905D0034C282FC906,853ccD0034C5C2FC90AD0034C422F60AD2706C901D00160AD3206C950F004EE320660AD3606C901D0034CF525 }AD3906,95(ddC901F00EAD0AD2300160A9018D390620BA2EAD4206C901D0034CDE2520F42F20F42F20F42F20F42FAD0B06C96D,5122ddB00160A901 }8D42068D2706A9AF8D2E0660A9018D3606AD0AD23008A9008D3C064CF525A9018D3C06AD3C06C901,359<ddD0034CB82F4CCC2FAD2806C901D00160AD3 }306C928F004EE330660AD4606C901D0034CC826AD3406C901D0034C,732Fdd5326AD1306C902D0034C3A26C904F0034C5326AD4506C932F012AD4706C9 }02900BAD0AD23006EE45064CC826AD,894Pdd3706C901D0034CBB26AD3A06C901F014AD0AD2300160A9018D3A068D3406EE470620CC2EAD4306C901D00 }34CA4,976Zdd26204930204930204930204930AD0C06C96DB00160A9018D43068D2806A9AF8D2F0660A9018D3706AD0AD23008,426dccA9008D3D06 }4CBB26A9018D3D06AD3D06C901D0034C0D304C2130A9018D4606A9008D4706AD4C06C901D0034C40,11ndd27AD4B06C901F008A9018D4B0620502DAD4D }06C901D0034C1727204930204930204930204930AD0C06C968B001,395xdd60A9018D4D068D2806A9AF8D2F0660A9018D4C06EE4A06EE4A06AD0AD2300 }EA9008D4806EE490620502D4C4027,231ccA9018D4806CE490620682DAD4806C901D0034C0D304C2130AD2906C901D00160AD5006C901D0034CF727AD }3506,37ddC901D0034C8227AD1306C903B0034C8227AD4E06C9029008AD0AD230034CF727AD3806C901D0034CEA27AD3B06,174ddC901F014AD0A }D2300160A9018D3B068D3506EE4E0620ED2EAD4406C901D0034CD32720DE3020DE3020DE3020DE,533dd30AD0D06C96DB00160A9018D44068D2906A9A }F8D300660A9018D3806AD0AD23008A9008D3E064CEA27A9018D3E,486dd06AD3E06C901D0034C64304C7830A9018D5006AD5306C901D0034CAF28AD51 }06C901F008A9018D510620B12DAD,512dd5206C901D0034C412820DE3020DE3020DE3020DE30AD0D06C962B00160A9018D52068D2906A9AF8D300660A }901,558dd8D5306AD0006CD0406B032AD0106CD0506F016901420B12DCE0406EE0506EE0506A9008D4F064CAF2820DE2DCE,389cc0406CE0506CE }0506A9028D4F064CAF28AD0106CD0506F016901420C92DEE0406EE0506EE0506A9018D4F064CAF,14dd2820F32DEE0406CE0506CE0506A9038D4F06AD }4F06C900D0034C6430C901D0034C7830C902D0034C8C304CA030,967ddAD2606C901F0034CF029AD2D068D01D2CE2D06AD2D06C9A0F0034CF029A9008 }D01D28D26068D2A06A9088D0E06,237ddAD04D0C900D00420732E6020DD2BAD1206C901D0034C3C29C902D0034C4C29C903D0034C7F29C904D0034C66 }29,308ddC905D0034CA329C906D0034CC629C907D0034C7F294CC629AD04D0C901D006EE0206202A314CF029AD04D0C901,830ddD006202A314CF }029C902D006EE02062033314CF029AD04D0C901D009EE0206202A314CF029CE02062018314CF0,841dd29AD04D0C901D006202A314CF029C902D00620 }33314CF029C904D056EE0206203C314CF029AD04D0C901D00620,145dd2A314CF029C902D009EE02062033314CF029CE0206202A314CF029AD04D0C90 }1D006202A314CF029C902D00620,172dd33314CF029C904D009EE0206203C314CF029CE0206203331A200A000207F2BAD2406C901F0034C1A2AAC0B06 }A2,820"dd008A99003DE8C8E00AD0F7A9008D3206A20020B82BAD4606C901D0034CBE2AA201A002207F2BAD2406C901F003,237,dd4C512AAC0C06A }2008A99003EE8C8E00AD0F7A9008D33068D3406A20120B82BAD5006C901F029A202A004207F2B,5226ddAD2406C901F00160AC0D06A2008A99003FC8E8 }E00AD0F7A9008D3506A20220B82B60AD2906C901F00160AD3006,978@dd8D07D2CE3006AD3006C9A0F00160AD07D0C900D00CA9058D2306206E3220DA3 }160A9008D07D28D29068D5306A9,387Jdd088D110660AD2806C901F0034C512AAD2F068D05D2CE2F06AD2F06C9A0F0034C512AA9008D05D2AD06D0C900 }D0,709Tdd3220802DA9008D4B068D4D068D46068D4C068D28068D3306A90A8D4A06A9088D49068D1006A92D8D0C06A9748D,163^dd02D08D090660A }9008D28068D4C06A9088D1006AD06D0C901D0016020492BA94C858AA933858BAD49068D5906AD,255hdd4A068D5A0620282E60AD1206C901F013C902F0 }17C903F01BC904F007C905F00B4C732BAD06D0C902F01160AD06,646rddD0C904F00960AD06D0C908F00160CE020660BD2706C901F00160BD2E069903D }2DE2E06BD2E06C9A0F00160A900,409|dd9903D2BD05D0C900D006A9018D240660A9009D27069D3606A9089D0F0660A9009D36069D27069D39069D4206 }8D,258dd2406A9089D0F06A92D9D0B06BD54069D01D09D080660AD3106C909F00DC905F013C906F023C90AF01560CE0006,373ddEE0106EE01066 }0EE0006EE0106EE010660CE0006CE0106CE010660EE0006CE0106CE010660AD00068D5906AD01,878dd068D5A0660A2FFAC030688D0FDCAD0F760AD14 }06C900D011A9008D0206A910A2009D1A06E8E006D0F8A900A200,893dd9D2006E8E064D0F8A9088D0E068D0F068D10068D1106A9098D0006A9088D010 }6A90A8D04068D05068D4A06A908,457dd8D4906A97C8D06068D00D0A9558D0706A9748D08068D09068D01D08D02D08D54068D5506A9848D0A068D5606 }8D,472dd03D0A92D8D0B068D0C068D0D0618A9AA8D00D2690A8D02D2690A8D04D2690A8D06D2A9018D1ED0A900A2FF9D00,790dd3C9D003D9D003 }E9D003FCAD0F160AD2506C909F011AC0706A200BDA43299003CC8E8E010D0F460AD2506C905F0,782dd1420A02DAC0706A200BDB43299003CC8E8E010 }D0F460AD2506C90AF01420A02DAC0706A200BDC43299003CC8E8,589ddE00FD0F460AD2506C906F01420A02DAC0706A200BDD33299003CC8E8E00FD0F }46020802DAC0C06A200BDE23299,700dd003EE8C8E00DD0F420902D6020802DAC0C06A200BDEE3299003EC8E8E00DD0F420902D60AC0C06A2008A9900 }3E,592ddE8C8E00FD0F760A90D8D1506A90B8D2106A9C68DC20260AC0706A200A90099003CC8E8E014D0F76020182EAC0D,567dd06A200BDFA329 }9003FC8E8E012D0F420082E6020182EAC0D06A200BD0C3399003FC8E8E012D0F46020182EAC0D,180dd06A200BD1E3399003FC8E8E012D0F46020182E }AC0D06A200BD303399003FC8E8E012D0F460A9138D1606A9108D,920dd1706A9568DC30260AC0D06A2008A99003FC8E8E014D0F760AD5A068580A9008 }58106800680A580858C06800680,635dd2681A58018658C8580A58169008581A580186D59068580A58169008581A5801869008580A58169368581A001 }B1,461cc8A918088B18A918060A9048D6F02A9028D0306204B31A9AA8D01D2AD07068D00D2C9F0F009209F2F20262C4C85,75&dd2EA96F8D01D218 }A9828D00D2690120262CC9D2D0F4A9008D00D28D01D2A9038D200660AC0B06A200BD42339900,6390dd3DC8E8E00AD0F460AC0C06A200BD423399003EE }8C8E00AD0F4A90A8D1506A9088D2106A9348DC20260AC0D06A2,616:dd00BD423399003FC8E8E00AD0F4A90A8D1606A9088D1706A9348DC3026020E32C }A9018D2A0620762F209F2F209F,894Ddd2FCE0E06D00320F9306020FC2CA9018D2A0620802F209F2F209F2FCE0E06D00320F9306020182DA9018D2A062 }0,527Ndd762F208A2F208A2FCE0E06D00320F9306020342DA9018D2A0620802F208A2F208A2FCE0E06D00320F93060CE06,191Xdd06AD06068D00D0 }60EE0606AD06068D00D060AC0706A200B9003C99FF3BE8C8E011D0F4CE070660A20018AD0706,578bdd690EA8B9003C99013C88E8E011D0F4EE0706602 }0E02F20F42F20F42FCE0F06D005A200200D316020EA2F20F42F,109ldd20F42FCE0F06D005A200200D3160CE0806AD08068D01D060EE0806AD08068D01 }D060A20018AD0B066908A8B900,804vdd3D99013D88E8E00AD0F4EE0B0660203530204930204930CE1006D005A201200D3160203F30204930204930CE1 }0,389dd06D005A201200D3160CE0906AD09068D02D060EE0906AD09068D02D060A20018AD0C066D2106A8B9003E99013E,861dd88E8EC1506D0F3 }EE0C066020B43020DE3020DE30CE1106D005A202200D316020BE3020DE3020DE30CE1106D005,271ddA202200D316020B43020C83020C830CE1106D00 }5A202200D316020BE3020C83020C830CE1106D005A202200D31,771dd60CE0A06AD0A068D03D060EE0A06AD0A068D03D060AC0D06A200B9003F99FF3E }C8E8EC1606D0F3CE0D0660A200,318dd18AD0D066D1706A8B9003F99013F88E8EC1606D0F3EE0D0660A9018D26068D2A06A9AF8D2D06AD31068D25066 }0,329ddA9019D2706A9AF9D2E0660A94C858AA933858B20193220192C20282E60A94E858AA9334C1E31A950858AA9334C,489dd1E31A952858AA9 }334C1E31A9018D1ED060A9008D03D28D02D28D05D28D04D28D07D28D06D260AD0CD0C9019038,303ddC904D015AD4606C901D00E20E72AA9028D23062 }06E324C9F31AD0CD0C908D007AD5006C901F011AD2C06C904F0,747dd04EE2C0660A9028D200660A9008D2C06AD5006C901D060AD0FD0C901D011AD2B }06C904F004EE2B0660A9028D20,927dd0660A9008D2B06AD0FD0C902903CC904D007AD4606C901F03120182EA9008D50068D29068D52068D51068D4E0 }6,719dd8D5306A90A8D04068D0506A9088D1106A92D8D0D06A9848D0A068D03D060AD0206C91CD005A9018D200660A005,285dd18B91A066905C9 }1AD015A910990036991A0688B91A06186901991A064C4332A915990036991A0688B91A061869,594dd02C91AF007990036991A0660A910990036991A0 }688B91A06186901C91AF0ED990036991A0660A00318B91A066D,323dd2306C91A902238E91A8D220618A9106D2206990036991A06A9008D22068818B9 }1A066901C91AF0E4990036991A,929 dd06600C1E3F2B2B3F2B371E1E12121B366C483078FCD4D4FCD4EC78784848D86C36120E1F37371F0F1F1F0E0A2 }E,397cc3E1B0D0470F8ECECF8F0F8F87050747CD8B020A050283C7E6A7E763C3C2436050A143C7E567E6E3C3C246C0C1E,50 cc1EFF2B2BFFFF2D3 }33F1E12121B366C00307878FFD4D4FFFFB4CCFC784848D86C36000C1E1EFF2F2FFF7F2F1F3F,44*dd1E12127E361B00307878FFF4F4FFFEF4F8FC78484 }87E6CD800183C7EFFFFFF7E3C1800030443448384C3C47070,5204dd704600360606860686868606060606060606060606060606060606415433B2A5A1 }A4B98085852C6536652CA7A1,525>ddADA580AFB6A5B22328212E2725ECE5F6E5EC9AF2EFF5EEE49AA2AFAEB5B30011101010000000002136212C212E, }776Hdd232825000000223900342F2D2D390022252E2E253434A1AEA1ACAFA780A3AFADB0B5B4A9AEA7000F5A049C0086,624RddF60C92001AA47654 }00C4422266030F3F7F3F0F0300C0F0FCFEFCF0C00000060C18300060000C1E3F2B3F1E1236,228\cc080C7E7F7E0C080010307EFE7E301000030403040 }30403040304030403043C2F002F3C483C0048404840484000,84fdd5148514851480B0E070B07070707070707070707070707070707070000000000000 }00000000000000000000000,705D2:AVALANCH.BAS4fdd5148514851480B0E070B07070707070707070707070707070707070000000000000 30100 *****************************0110 * *0120 * 'AVALANCHE' *0130 * written by: T}OMMY BENNETT *0140 * *0150 *****************************0160 ;0170 ;OS SYMBOLS !!!0180 ;0190 }COLPM0 = $02C0 ;P/M COLORS0200 COLPM1 = $02C10210 COLPM2 = $02C20220 COLPM3 = $02C30230 COLPF0 = $02C4 ;PLAYFIELD COLOR}S0240 COLPF1 = $02C50250 COLPF2 = $02C60260 COLPF3 = $02C70270 COLBK = $02C80280 CHBASE = $02F4 ;CHAR. SET ADDRESS0290} HPOSP0 = $D000 ;P/M HORIZONTAL0300 HPOSP1 = $D001 ;REGISTERS0310 HPOSP2 = $D0020320 HPOSP3 = $D0030330 P0PF = $D004 } ;COLLISION0340 P1PF = $D005 ;REGISTERS0350 P2PF = $D0060360 P3PF = $D0070370 P0PL = $D00C0380 P3PL = $D00F0390 }GRACTL = $D01D ;GRAPHICS CONTROL0400 HITCLR = $D01E ;COLLISION CLEAR0410 WSYNC = $D40A ;WAIT FOR SYNC0420 NMIEN = $D40}E ;INTERRUPT ENABLE0430 PRIOR = $026F ;PRIORITY0440 DMACTL = $022F ;DMA CONTROL0450 AUDF1 = $D200 ;AUDIO0460 AUDC1} = $D201 ;REGISTERS0470 AUDF2 = $D2020480 AUDC2 = $D2030490 AUDF3 = $D2040500 AUDC3 = $D2050510 AUDF4 = $D2060520 AUD}C4 = $D2070530 AUDCTL = $D2080540 SETVBV = $E45C ;VBLANK SET0550 XITVBV = $E462 ;VBLANK EXIT0560 SIOINV = $E465 ;SIO I}NIT0570 CONSOL = $D01F ;CONSOLE KEYS0580 PCOLR2 = $02C2 ;P/M COLOR0590 PCOLR3 = $02C3 ;0600 STICK0 = $0278 ;STICK061}0 STRIG = $0284 ;STICK TRIGGER0620 RANDOM = $D20A ;RANDOM #0630 ATRACT = $4D ;ATTRACT MODE FLAG0640 PMBASE = $D407 };P/M ADDRESS0650 DLISTL = $0230 ;DISPLAY...0660 DLISTH = $0231 ;LIST ADDR0670 PMAREA = $3800 ;P/M MEMORY0680 PLAY0 = P}MAREA+$04000690 PLAY1 = PMAREA+$05000700 PLAY2 = PMAREA+$06000710 PLAY3 = PMAREA+$07000720 DISP = $3600 ;DISPLAY MEMOR}Y0730 DISP1 = DISP+200740 DISP2 = DISP+400750 DISP3 = DISP+600760 DISP4 = DISP+800770 DISP5 = DISP+1000780 DISP7 = DISP}+1400790 DISP22 = DISP+4400800 CHSET = $3800 ;CHAR. SET ADDR0810 ;0820 ;PAGE 0 VARIABLES0830 ;0840 *= $800850 L}O *= *+1 ;2-BYTE...0860 HI *= *+1 ;WORK ADDRESS0870 TIMER *= *+1 ;EVENT TIMER0880 LVL *= *+1 ;LEVEL #}0890 OPT *= *+1 ;OPTION KEY FLAG0900 TOG *= *+1 ;EASY/HARD VALUE0910 PADCT *= *+1 ;JUMPING PAD INDEX0920 COLR} *= *+1 ;COLOR WORK REG.0930 PNT *= *+10940 TOM *= *+1 ;LIVES0950 FILE *= *+2 ;PAD COLOR POINTER0960 TIMES4} *= *+1 ;PLOT WORK AREA0970 ;0980 ;USER SYMBOLS !!!0990 ;1000 *= $06001010 PCOL *= *+1 ;PL COL #1020 PROW *=} *+1 ;PL ROW #1030 NUMSQ *= *+1 ;# OF SQ'S1040 TIME *= *+1 ;DELAY TIM1050 SCOL *= *+1 ;SNK COL #1060 SROW }*= *+1 ;SNK ROW #1070 PXPOS *= *+1 ;PL XPOS1080 PYPOS *= *+1 ;PL YPOS1090 XPOSP1 *= *+1 ;POSITIONS1100 XPOSP2} *= *+1 ;OF1110 XPOSP3 *= *+1 ;PLAYERS..1120 YPOSP1 *= *+1 ;1130 YPOSP2 *= *+1 ;1140 YPOSP3 *= *+1 ;1150 COUNT}1 *= *+1 ;1160 COUNT2 *= *+1 ;1170 COUNT3 *= *+1 ;1180 COUNT4 *= *+1 ;1190 LEVEL *= *+1 ;1200 ROUND *= *+1 } ;1210 START *= *+1 ;1220 LENGTH *= *+1 ;1230 LENGTH3 *= *+11240 ADDNUM3 *= *+11250 PLAYER *= *+21260 SCORE *= *+6} ;SCORE DIGITS1270 BACK *= *+1 ;PLAY END REASON1280 ADDNUM *= *+11290 ADD *= *+11300 SUM *= *+1 ;SCORE ADD V}ALUE1310 FALOFF *= *+1 ;FALL FLAG1320 DIRFLG *= *+1 ;DIRECTION FLAG1330 SO1FLG *= *+1 ;SOUND FLAGS1340 SO2FLG *= *+}11350 SO3FLG *= *+11360 SO4FLG *= *+11370 MOVFLG *= *+1 ;MOVE FLAG1380 WARN *= *+11390 WARN1 *= *+11400 PITCH1 *= *+1} ;PITCH FLG1410 PITCH2 *= *+1 ;1420 PITCH3 *= *+1 ;1430 PITCH4 *= *+1 ;1440 DIRECT *= *+1 ;DIRECTION SAVE1450 }DRP1 *= *+1 ;DROP FLAGS1460 DRP2 *= *+11470 BAL1FLG *= *+1 ;ROCK FLAGS1480 BAL2FLG *= *+11490 B1MOV *= *+1 ;ROCK }MOV1500 B2MOV *= *+1 ;FLAG'S..1510 B3MOV *= *+11520 B1DRP *= *+11530 B2DRP *= *+11540 B3DRP *= *+11550 B1DIR *= *+1}1560 B2DIR *= *+11570 B3DIR *= *+11580 B1DRW *= *+11590 B2DRW *= *+11600 B3DRW *= *+11610 FNB1DRP *= *+11620 FNB2DRP *=} *+11630 FNB3DRP *= *+11640 MAN *= *+1 ;GREEN MAN1650 GRNFLG *= *+1 ;GREEN MAN PRESENT1660 OUTFLG2 *= *+11670 GRN}DIR *= *+1 ;GREEN DIRECTION1680 GCOL *= *+1 ;GREEN MAN COLUMN1690 GROW *= *+1 ;GREEN MAN ROW1700 GRNDRP *= *+1 } ;GREEN DROP FLAG1710 GRNMOV *= *+1 ;GREEN MOVE FLAG1720 GRNFNDRP *= *+1 ;GREEN DROP FINISH1730 OUTFLG *= *+11740 GRDIR} *= *+1 ;GEORGE DIRECTION1750 GRGFLG *= *+1 ;GEORGE PRESENT1760 GRGDRP *= *+1 ;GEORGE DROP1770 FNGRDRP *= *+1 ;GEO}RGE DROP FINISH1780 GRGMOV *= *+1 ;GEORGE MOVE FLAG1790 HPOS *= *+3 ;TMP LOC..1800 TEMP *= *+11810 TEMP1 *= *+1182}0 COL *= *+1 ;PLOT COLUMN1830 ROW *= *+1 ;PLOT ROW1840 ;1850 ;AVALANCHE CONTROL CODE1860 ;1870 *= $20001}880 STRTIT JSR SIOINV ;INIT SOUNDS1890 LDA #0 ;SET AUDIO CONTROL1900 STA AUDCTL1910 LDA #1 ;SET EASY} MODE1920 STA OPT1930 LDA #1741940 STA TOG1950 JSR PMCLR1960 JSR SETCHR ;SET UP CHARSET1970 JS}R INILVL ;SET LEVEL INFO1980 JSR SCREEN ;INIT SCREEN1990 JSR SHOLIV ;SHOW LIVES2000 JSR SNDOFF ;NO SOUNDS}2010 JSR ZEROSC ;ZERO SCORE2020 LDX #15 ;DISPLAY...2030 SETAUTH LDA TITLE,X ;TITLE,2040 STA DISP3+2,X205}0 LDA AUTHOR,X ;AUTHOR,2060 STA DISP22+2,X2070 LDA MAGMSG,X ;MAGAZINE2080 STA DISP22+22,X2090 DEX 21}00 BPL SETAUTH2110 CKSTRG LDA STRIG ;TRIG PRESSED?2120 BNE NOSTRG ;NO!2130 JSR INILVL ;INIT LEVEL2140 J}SR SCREEN ;INIT SCREEN2150 JSR SHOLIV ;SHOW LIVES2160 JSR ZEROSC ;ZERO SCORE2170 LDA #0 ;NO ATTRACT MO}DE2180 STA ATRACT2190 JMP READY ;GO TO IT!2200 NOSTRG LDA CONSOL ;GET CONSOLE2210 CMP #3 ;OPTION PRESS }ED?2220 BNE SHODIF ;NO!2230 LDA TOG ;GET DIFFICULTY2240 CMP #174 ;NORMAL?2250 BNE NORMAL ;NO, SE }T NORMAL2260 LDA #168 ;SET HARD2270 STA TOG2280 LDA #12290 BNE SETDIF2300 NORMAL LDA #174 ;NORMAL DIF }FICULTY2310 STA TOG2320 LDA #02330 SETDIF STA OPT ;SAVE DIFF2340 JSR STODIF ;AND INITIALIZE2350 SHODIF LDA } TOG ;GET DIFF CHAR2360 STA DISP+9 ;SHOW ON SCREEN2370 LDA #20 ;WAIT 20 JIFFIES2380 JSR WAIT2390 JM }P CKSTRG ;LOOP BACK2400 READY JSR CLINE3 ;CLEAR SCREEN LINE 32410 JSR CLINE22 ;AND LINE 222420 LDA LEVEL ;GET L}EVEL2430 ORA #$102440 STA DISP+18 ;SHOW ON SCREEN2450 LDA ROUND ;GET ROUND2460 ORA #$102470 STA DI}SP1+18 ;SHOW ON SCREEN2480 LDX #7 ;SHOW READY!2490 SHORDY LDA RDYMSG,X2500 STA DISP3+6,X2510 DEX 2520 } BPL SHORDY2530 LDA #120 ;WAIT 120 JIFFIES2540 JSR WAIT2550 JSR CLINE3 ;ERASE LINE 32560 LDA #2025}70 STA TIME2580 LDX ROUND ;GET ROUND #2590 LDA R1SET,X ;AND SET COLORS2600 STA DLI4C1+12610 LDA R2S}ET,X2620 STA DLI4C2+12630 LDA R3SET,X2640 STA DLI4C3+12650 LDA R4SET,X2660 STA DLI4C4+12670 JSR} SETLD ;INIT DIFF FACTORS2680 JSR GAME ;GO TO MAIN GAME2690 LDA #1 ;RESET START FLAG2700 STA START2}710 JSR SNDOFF ;TURN OFF SOUND2720 LDA BACK ;GET PLAY END REASON2730 CMP #1 ;SCREEN COMPLETED?2740 } BEQ LVLEND ;YES!2750 JMP CKDED2 ;NO, CHECK DEATH2760 LVLEND INC ROUND ;NEXT ROUND2770 JSR BONUS ;DO BONUS27}80 JSR BONLIF ;CHECK BONUS LIFE2790 LDA #0 ;NO ATTRACT MODE2800 STA ATRACT2810 LDA ROUND ;GET ROUN}D #2820 CMP #5 ;ROUND 5?2830 BNE NOTR5 ;NO!2840 INC LEVEL ;NEXT LEVEL!2850 LDA #1 ;RESET RO}UND #2860 STA ROUND2870 LDA LEVEL ;SAVE LEVEL #2880 STA LVL2890 JSR SCREEN ;SET SCREEN2900 JMP NE}WLVL ;NEW LEVEL2910 NOTR5 LDA #0 ;0 # OF SQUARES2920 STA NUMSQ2930 JSR SCREEN ;SET SCREEN2940 JMP READY } ;WE'RE READY!2950 NEWLVL JSR CLINE22 ;CLEAR LINE 222960 LDX #4 ;NEW LEVEL MESSAGE2970 SHOLVL LDA LVMSG,X2980 } STA DISP22+7,X2990 DEX 3000 BPL SHOLVL3010 LDA LEVEL ;SHOW LEVEL #3020 ORA #$103030 STA DISP22+}133040 LDX #11 ;MAKE LEVEL SOUND3050 NLSND LDA #150 ;SET SOUND,3060 STA AUDF13070 LDA #1683080 STA }AUDC13090 LDA #28 ;SET COLORS3100 STA DLI4C1+13110 LDA #1363120 STA DLI4C2+13130 LDA #6 ;WA}IT 6 JIFFIES3140 JSR WAIT3150 LDA #50 ;CHANGE SOUND3160 STA AUDF13170 LDA #136 ;AND COLORS3180 } STA DLI4C1+13190 LDA #283200 STA DLI4C2+13210 LDA #6 ;WAIT AGAIN3220 JSR WAIT3230 DEX  } ;MORE SOUNDS?3240 BPL NLSND ;YES!3250 LDA #0 ;TURN OFF SOUND3260 STA AUDC13270 JSR CLINE22 ;ERASE!} LINE 223280 LDA LEVEL ;GET LEVEL #3290 CMP #7 ;LEVEL 7?3300 BNE NOT7 ;NO!3310 LDA #6 ;MAK"}E IT 6 AGAIN3320 STA LVL3330 NOT7 LDA #0 ;RESET PLAY FLAG3340 STA BACK3350 STA NUMSQ ;AND # SQUARES336#}0 JMP READY ;GO PLAY!3370 CKDED2 CMP #2 ;HIT BY ROCK?3380 BEQ DEAD2 ;YES!3390 JMP CKDED3 ;NO, WE FELL.$}3400 DEAD2 DEC TOM ;1 LESS LIFE3410 LDX #15 ;DO DEATH SOUND3420 DEDSND LDA #120 ;SET SOUND3430 STA AUDF1344%}0 TXA 3450 ORA #$103460 STA AUDC13470 LDA #5 ;WAIT 5 JIFFIES3480 JSR WAIT3490 DEX ;&}NEXT SOUND3500 BPL DEDSND3510 JMP CHKEND ;CHECK END OF GAME3520 CKDED3 DEC TOM ;1 LESS LIFE3530 LDA #1 '} ;RESET PRIORITY3540 STA PRIOR3550 CHKEND JSR BONLIF ;BONUS LIFE CHECK3560 LDA TOM ;MORE LIVES?3570 BNE N(}OTEND ;YES!3580 LDX #8 ;NO, SHOW END MESSAGE3590 SHOEND LDA ENDMSG,X3600 STA DISP3+6,X3610 DEX 3620 )} BPL SHOEND3630 JMP CKSTRG ;GO CHECK RESTART3640 NOTEND JSR SHOLIV ;SHOW LIVES LEFT3650 JMP READY ;AND PLAY!3*}660 CLINE3 LDX #19 ;ERASE 3RD SCREEN LINE3670 LDA #03680 CL3LP STA DISP3,X3690 DEX 3700 BPL CL3LP3710 R+}TS 3720 CLINE22 LDX #39 ;ERASE LAST 2...3730 LDA #0 ;SCREEN LINES3740 CL22LP STA DISP22,X3750 DEX 3760 ,}BPL CL22LP3770 RTS 3780 WAIT STA TIMER ;SET TIMER3790 WAITLP LDA TIMER ;GET TIMER3800 BNE WAITLP ;NOT ZERO YET-}3810 RTS ;TIME'S UP!3820 SETCHR LDX #0 ;COPY CHAR SET3830 MOVCHR LDA $E000,X3840 STA CHSET,X3850 LD.}A $E100,X3860 STA CHSET+$0100,X3870 DEX 3880 BNE MOVCHR3890 LDX #47 ;AND CHANGE...3900 CHGCHR LDA NE/}WCHR,X ;THE CHARACTERS...3910 STA CHSET+24,X ;WE'RE USING!3920 DEX 3930 BPL CHGCHR3940 LDA # >CHSET ;TURN0} ON...3950 STA CHBASE ;OUT CHAR SET3960 LDA #62 ;TURN ON DMA3970 STA DMACTL3980 LDA # >DLIST ;POINT 1}TO...3990 STA DLISTH ;OUR...4000 LDA # PMAREA ;SET P/M AREA4050 STA PMBASE4060 LDA #38 ;SET COLORS40703} STA COLPM04080 LDA #524090 STA COLPM14100 STA COLPM24110 STA COLPM34120 LDA #124 ;SET P/M PO4}SITIONS4130 STA HPOSP04140 LDA #1164150 STA HPOSP14160 STA HPOSP24170 STA HPOSP34180 LDA #1 5} ;SET PRIORITY4190 STA PRIOR4200 LDA #15 ;SET MISC. COLORS4210 STA COLPF04220 LDA #404230 STA C6}OLPF14240 LDA #1364250 STA COLPF24260 LDA #2144270 STA COLPF34280 LDA # >DLI1 ;POINT TO DLI4290 7} STA $02014300 LDA # VBLANK ;SET VBLANK4330 LDY # DLI2 ;POINT TO<} DLI #24550 STA $02014560 LDA # DLI3 ;POINT TO DLI #34650 STA $02014660 LDA>} # DLI4 ;POINT TO DLI #44880 STA $02014890 LDA # DLI1 ;POINT TO DLI #15040 STA $02015050 LDA # [DISP+169] ;POINT TO...5200 STA HI ;PAD AREA...5210 LDA # <[DISP+169] ;ON H}SCREEN5220 STA LO5230 LDA #1 ;AND SET UP PADS!5240 STA PADCT5250 SETPAD LDY PADCT5260 SPADLP LDA PADATAI},Y5270 STA (LO),Y5280 DEY 5290 BPL SPADLP5300 LDA PADCT5310 CLC 5320 ADC #25330 CMP #1553J}40 BEQ PADEND5350 STA PADCT5360 LDA LO5370 CLC 5380 ADC #395390 STA LO5400 LDA HI5410 K}ADC #05420 STA HI5430 JMP SETPAD5440 PADEND JSR STODIF5450 LDA #0 ;ERASE...5460 STA DISP+18 ;LEVEL L}#5470 STA DISP+38 ;ROUND #5480 LDX #5 ;SHOW LVL/RND MESSAGES5490 SETLR LDA LVLMSG,X5500 STA DISP+12,X55M}10 LDA RNDMSG,X5520 STA DISP1+12,X5530 DEX 5540 BPL SETLR5550 RTS 5560 ZEROSC LDX #5 ;ZERO SCORE5N}570 ZSCLP LDA #165580 STA DISP,X5590 LDA CHGMSG,X ;SET CHANGE TO MSG5600 STA DISP4,X5610 DEX 5620 BPO}L ZSCLP5630 LDA #52 ;SET UP ARROWS...5640 STA DISP5+2 ;AND COLOR INDICATOR5650 LDA #475660 STA DISP5+P}35670 LDA #75680 STA DISP7+15690 LDA #675700 STA DISP7+25710 LDA #685720 STA DISP7+35730 LQ}DA #85740 STA DISP7+45750 RTS 5760 INILVL LDA #1 ;START AT...5770 STA LEVEL ;LEVEL 1,5780 STA LVL57R}90 STA ROUND ;ROUND 15800 LDA #4 ;4 LIVES!5810 STA TOM5820 LDA #0 ;SET START FLAG5830 STAS} START5840 LDA #2 ;SET MISC VARIABLES5850 STA ROW5860 LDA #965870 STA COLR5880 LDA #165890 T} STA PNT5900 RTS 5910 SNDOFF LDA #0 ;TURN OFF...5920 STA AUDC1 ;SOUND CHANNEL 15930 STA AUDC2 ;SOUND CHU}ANNEL 25940 STA AUDC3 ;SOUND CHANNEL 35950 STA AUDC4 ;SOUND CHANNEL 45960 RTS 5970 SETLD LDA LVL ;GET LV}EVEL5980 CMP #1 ;LEVEL 1?5990 BEQ L14 ;YES!6000 CMP #4 ;LEVEL 4?6010 BNE CL25 ;NO! CHECKW} 2/56020 L14 LDA DLI4C2+1 ;SET COLOR6030 STA DLI2C1+16040 RTS 6050 CL25 CMP #2 ;LEVEL 2?6060 BEQ L25 X} ;YES!6070 CMP #5 ;LEVEL 5?6080 BNE L36 ;NO!6090 L25 LDA DLI4C3+1 ;SET COLOR6100 STA DLI2C1+16110 Y} RTS 6120 L36 LDA DLI4C4+1 ;SET COLOR6130 STA DLI2C1+16140 RTS 6150 BONUS LDX #20 ;PLAY MUSIC6160 MUSLP LDA Z}NOTE,X ;SET NOTE6170 STA AUDF16180 LDA #$AA6190 STA AUDC16200 LDA DUR,X ;SET DURATION6210 JSR WAIT[} ;WAIT,6220 JSR COLCYC ;CYCLE COLORS6230 DEX ;MORE NOTES?6240 BPL MUSLP ;YES!6250 LDX #60 \} ;DO DOWN-SLUR6260 MDOWN STX AUDF16270 JSR COLCYC6280 LDA #26290 JSR WAIT6300 INX 6310 INX 6320 ]} INX 6330 CPX #816340 BCC MDOWN6350 MUP STX AUDF1 ;NOW UP-SLUR6360 JSR COLCYC6370 LDA #26380 J^}SR WAIT6390 DEX 6400 DEX 6410 DEX 6420 CPX #576430 BNE MUP6440 LDA #0 ;RESET BACKGND COLOR_}6450 STA COLBK6460 LDA #966470 STA COLR6480 LDX #10 ;AND FADE OUT...6490 FADE TXA ;LAST NOTE`}6500 ORA #$A06510 STA AUDC16520 LDA #46530 JSR WAIT6540 DEX 6550 BPL FADE6560 LDA #0 ;a}SHUT OFF SOUND6570 STA AUDC16580 LDX #9 ;SHOW BONUS MESSAGE6590 SHOBMS LDA BONMSG,X6600 STA DISP22+5,X6b}610 DEX 6620 BPL SHOBMS6630 LDA SCORE+2 ;ADD 1000 POINTS6640 CLC ;TO SCORE6650 ADC #16660 c} CMP #266670 BNE SHOSP26680 LDA SCORE+16690 CLC 6700 ADC #16710 CMP #266720 BNE SHOSP26730 d} LDA SCORE+16740 CLC 6750 ADC #16760 STA SCORE+16770 STA DISP+16780 LDA #166790 SHOSP2 STA SCORE+2e}6800 STA DISP+26810 LDA #200 ;WAIT 200 JIFFIES6820 JSR WAIT6830 RTS 6840 BONLIF LDA DISP+1 ;GET SCOREf}6850 CMP PNT ;> BONUS AMT?6860 BEQ BRRET ;NO!6870 BCS BONUSL ;YES!6880 BRRET RTS 6890 BONUSL INC PNT g} ;INC BONUS LEVEL6900 INC TOM ;1 MORE LIFE6910 JSR SHOLIV ;SHOW LIVES6920 LDX #2 ;3 BONUS SOUNDS693q}BJDOS SYSBNPROSET BASBkTTFIX LSTBkpAVALANCHBASBAV1 ASMBAV2 ASMBYmAV3 ASMB CARDFILEBAS0 LDA #32 ;PITCH = 326940 STA AUDF16950 BLS1 LDY #15 ;VOLUME 156960 BLS2 TYA 6970 ORA #$A06980 STr}A AUDC16990 LDA #3 ;LEAVE ON 3 JIFFIES7000 JSR WAIT7010 DEY ;NEXT VOLUME7020 BPL BLS27030 s} DEX ;NEXT SOUND7040 BPL BLS17050 LDA #0 ;TURN OFF SOUND7060 STA AUDC17070 RTS 7080 STODIt}F LDA OPT ;GET DIFF FLAG7090 STA OPTN1+1 ;STORE IN...7100 STA OPTN2+1 ;PROGRAM7110 LDA LEVEL ;GET LEVEL712u}0 CMP #3 ;LEVEL 3?7130 BNE NOTL3 ;NO!7140 LDA ROUND ;GET ROUND7150 CMP #1 ;ROUND 1?7160 v} BEQ SET1 ;YES!7170 CMP #3 ;ROUND 3?7180 BNE NOTL3 ;NO!7190 SET1 LDA #0 ;SET DIFFICULTY7200 STAw} OPTN2+17210 DIFRTS RTS 7220 NOTL3 LDA LEVEL ;GET LEVEL #7230 CMP #7 ;LEVEL 7?7240 BNE NOTL7 ;NO!7250 x} LDA #0 ;SET DIFF7260 STA OPTN1+17270 RTS 7280 NOTL7 CMP #8 ;LEVEL 8?7290 BEQ SET1 ;YES!7300 y}CMP #9 ;LEVEL 9?7310 BCC DIFRTS ;NO!7320 LDA #0 ;SET DIFF7330 STA OPTN1+17340 BEQ SET17350 COz}LCYC LDA COLR ;GET COLOR FLAG7360 CLC ;ADD 27370 ADC #27380 STA COLR ;SAVE IT7390 STA COLBK {};AND SET BACKGND7400 RTS 7410 ;7420 ;----------------7430 ;START OF PROGRAM7440 ;----------------7450 ;7460 GAME J|}SR SETUP ;INIT.....7470 JSR FIG17480 ;7490 ;---------7500 ;MAIN LOOP7510 ;---------7520 ;7530 MAIN LDA BACK ;BA}}CK TO7540 CMP #$007550 BEQ CHKSTK ;CONTROLLER?7560 RTS ;yes...7570 CHKSTK LDA MOVFLG ;ALREADY7580 ~} CMP #1 ;MOVIN...7590 BNE A1 ;NO!7600 JSR MOVE.MAN ;YES, MOVE MAN7610 JMP A27620 A1 LDA STICK0 };CHK STICK7630 STA DIRECT ;SAVE STICK POS7640 JSR MOVE.MAN ;MOVE MAN7650 A2 JSR ROCK2 ;HANDLE ROCK 27660 }LDA TEMP ;GET ADVANCE FLAG7670 OPTN1 CMP #1 ;0/1 SETS DIFFICULTY7680 BNE A6 ;NO ADVANCE!7690 LDA #0 } ;RESET ADV FLAG7700 STA TEMP7710 JSR ROCK3 ;HANDLE ROCK 37720 JMP A5 ;SKIP NEXT CODE7730 A6 LDA #1 } ;SET ADV FLAG7740 STA TEMP7750 A5 LDA TEMP1 ;GET ADV FLAG 27760 OPTN2 CMP #1 ;0/1 SETS DIFFICULTY7770 }BNE A3 ;NO ADVANCE!7780 LDA #0 ;RESET ADV FLAG 27790 STA TEMP17800 JSR ROCK1 ;HANDLE ROCK 17810 } JMP A47820 A3 LDA #1 ;SET ADVANCE FLAG7830 STA TEMP17840 A4 JSR SOUND ;DO SOUNDS7850 JSR CHECK ;CHE}CK SQUARES HIT7860 JSR CLEAR ;RESET P/M COLLISION7870 JSR DELAY ;DELAY...7880 JSR PL.PL ;CHECK PLR-PLR C}OLL.7890 JMP MAIN ;GO AGAIN7900 ;7910 ;-------------------7920 ;MOVE MAN SUBROUTINE7930 ;-------------------7940} ;7950 MOVE.MAN LDA SO1FLG ;CHK SOUND7960 CMP #1 ;FLG7970 BNE CHECKDIR7980 RTS 7990 ;8000 CHECKDIR LDA} DIRECT ;GET STICK...8010 CMP #9 ;DIRECTION8020 BNE B18030 JMP DNLEFT0 ;DOWN & LEFT8040 B1 CMP #58050 } BNE B28060 JMP DNRIGHT0 ;DOWN & RIGHT8070 B2 CMP #68080 BNE B38090 JMP UPRIGHT0 ;UP & RIGHT8100 B3 CMP} #108110 BNE B48120 JMP UPLEFT0 ;UP & LEFT8130 B4 RTS 8140 ;8150 ;---------8160 ;ROCK1 SUB8170 ;---------818}0 ROCK1 LDA SO2FLG ;SOUND ON?8190 CMP #18200 BNE C1 ;NO!8210 RTS 8220 C1 LDA DRP1 ;DROPPING?8230 } CMP #808240 BEQ C11 ;NO!8250 INC DRP1 ;NEXT DROP8260 RTS 8270 C11 LDA B1MOV ;MOVING...8280 CM}P #18290 BNE C28300 JMP MOVE1 ;YES...8310 C2 LDA B1DRP ;DROPED??8320 CMP #18330 BEQ C3 ;YES...}8340 LDA RANDOM ;NOT YET..8350 BMI C48360 RTS ;DONT DROP8370 C4 LDA #1 ;SET DRP..8380 STA} B1DRP8390 JSR BAL1DRW ;DRAW ROCK8400 C3 LDA FNB1DRP ;FINISHED..8410 CMP #18420 BNE DROP1 ;NO...8430 }JMP GETDIR18440 ;8450 DROP1 JSR DOWN1 ;DROP...8460 JSR DOWN18470 JSR DOWN18480 JSR DOWN18490 LDA YPOSP1} ;FINISHED..8500 CMP #1098510 BCS D1 ;YES...8520 RTS ;NO....8530 D1 LDA #18540 STA FNB1DR}P ;SET FLG..8550 STA SO2FLG ;SOUND FLG8560 LDA #$AF8570 STA PITCH2 ;PITCH...8580 RTS ;RETURN...}8590 ;8600 GETDIR1 LDA #1 ;GET DIRECT8610 STA B1MOV8620 LDA RANDOM8630 BMI E18640 LDA #0 ;0=DNRIG}HT8650 STA B1DIR8660 JMP MOVE18670 E1 LDA #1 ;1=DNLEFT8680 STA B1DIR8690 ;8700 MOVE1 LDA B1DIR ;WHICH} WAY?8710 CMP #1 ;DNLEFT??8720 BNE F1 ;NO....8730 JMP DNLEFT1 ;YES...8740 F1 JMP DNRIGHT18750 ;8}760 ;----------8770 ;ROCK 2 SUB8780 ;----------8790 ROCK2 LDA SO3FLG ;SOUND ON?8800 CMP #18810 BNE G1 ;NO!}8820 RTS 8830 ;8840 G1 LDA DRP2 ;DROPPING?8850 CMP #408860 BEQ G11 ;NO!8870 INC DRP2 ;INC DRO}P COUNT8880 RTS 8890 G11 LDA GRNFLG ;GRN MAN8900 CMP #1 ;OUT....8910 BNE G28920 JMP GREEN ;YES..}.8930 G2 LDA BAL1FLG ;ROCK OUT??8940 CMP #18950 BNE G38960 JMP MOVBAL2 ;YES...8970 G3 LDA ROUND ;CAN GRE}EN8980 CMP #2 ;COME OUT??8990 BNE G4 ;NO...9000 JMP GRNCAN ;YES...9010 G4 CMP #49020 BEQ GRN}CAN9030 JMP MOVBAL2 ;NO....9040 ;9050 GRNCAN LDA MAN9060 CMP #509070 BEQ MOVBAL29080 LDA OUTFLG2 ;ROCK }COME9090 CMP #2 ;TWICE....9100 BCC MOVBAL29110 LDA RANDOM ;GREEN OR9120 BMI MOVBAL2 ;ROCK....9130 } INC MAN ;IT'S GREEN MAN!9140 JMP GREEN9150 ;9160 MOVBAL2 LDA B2MOV ;MOVING...9170 CMP #19180 BNE H2 } ;NO...9190 JMP MOVE2 ;YES...9200 H2 LDA B2DRP ;DROPPED??9210 CMP #19220 BEQ H3 ;YES...9230 } LDA RANDOM ;NOT YET...9240 BMI H49250 RTS 9260 H4 LDA #1 ;SET DRP..9270 STA B2DRP9280 STA BAL1F}LG9290 INC OUTFLG29300 JSR BAL2DRW ;DRAW ROCK9310 H3 LDA FNB2DRP ;FINISHED..9320 CMP #19330 BNE DROP2 } ;NO...9340 JMP GETDIR29350 ;9360 DROP2 JSR DOWN2 ;ADVANCE...9370 JSR DOWN2 ;FOUR...9380 JSR DOWN2 ;TIME}S9390 JSR DOWN29400 LDA YPOSP2 ;DONE DROPPING?9410 CMP #1099420 BCS I1 ;YES!9430 RTS 9440 I1 } LDA #1 ;FINISHED!9450 STA FNB2DRP9460 STA SO3FLG9470 LDA #$AF ;SET SOUND 39480 STA PITCH39490 } RTS 9500 ;9510 GETDIR2 LDA #1 ;ROCK 2 MOVING9520 STA B2MOV9530 LDA RANDOM ;GET RANDOM DIR9540 BMI J195}50 LDA #0 ;IT'S DOWN & RIGHT!9560 STA B2DIR9570 JMP MOVE2 ;GO MOVE IT!9580 J1 LDA #1 ;IT'S DOWN &} LEFT!9590 STA B2DIR9600 ;9610 MOVE2 LDA B2DIR ;WHICH DIR9620 CMP #1 ;DN & LEFT?9630 BNE K1 ;NO!9}640 JMP DNLEFT29650 K1 JMP DNRIGHT29660 ;9670 GREEN LDA #1 ;SET GRNFLG9680 STA GRNFLG9690 LDA #09700 } STA OUTFLG29710 LDA GRNMOV ;MOVING?9720 CMP #19730 BNE L1 ;NO!9740 JMP MOVEGRN ;YES, MOVE IT!975}0 L1 LDA GRNDRP ;DROP YET?9760 CMP #19770 BEQ L2 ;NO!9780 LDA #1 ;SET FLG...9790 STA GRNDRP };FOR DROP9800 JSR GRN0 ;DRAW9810 L2 LDA GRNFNDRP ;DROP DONE?9820 CMP #19830 BNE DROPGRN ;NO!9840 JMP} GEDIRGRN ;YES, GET DIRECTION9850 DROPGRN JSR DOWN2 ;MOVE...9860 JSR DOWN2 ;DOWN...9870 JSR DOWN2 ;FOUR...988}0 JSR DOWN2 ;TIMES!9890 LDA YPOSP2 ;DROP DONE?9900 CMP #1049910 BCS M1 ;YES!9920 RTS 9930 M1} LDA #1 ;SET DROP DONE FLAG9940 STA GRNFNDRP9950 STA SO3FLG9960 LDA #$AF ;AND SOUND!9970 STA PIT}CH39980 RTS 9990 ;010000 GEDIRGRN LDA #1 ;SET GREEN MOVE FLAG010010 STA GRNMOV010020 INC GROW ;INC GREEN ROW}010030 INC GROW010040 LDA RANDOM ;GET RANDOM COL MOVE010050 BMI N1010060 LDA #0 ;DOWN & RIGHT010070 STA G}RNDIR010080 INC GCOL ;INCREMENT COLUMN010090 JSR GRN0 ;DRAW FACING RIGHT010100 JMP MOVEGRN ;AND MOVE HIM!0101}10 N1 LDA #1 ;DOWN & LEFT010120 STA GRNDIR010130 DEC GCOL ;DEC COLUMN010140 JSR GRN1 ;DRAW FACING LEFT010}150 ;010160 MOVEGRN LDA GRNDIR ;GET DIRECTION010170 CMP #1 ;DOWN & LEFT?010180 BNE O1 ;NO!010190 JMP DNLE}FT2 ;MOVE IT!010200 O1 JMP DNRIGHT2 ;DITTO!010210 ;010220 ;----------010230 ;ROCK 3 SUB010240 ;----------010250 ROCK3 L}DA SO4FLG ;SOUND ON?010260 CMP #1010270 BNE P1 ;NO!010280 RTS 010290 P1 LDA GRGFLG ;GEORGE ON?010300 CMP #1}010310 BNE P2 ;NO!010320 JMP GEORGE ;HANDLE GEORGE010330 P2 LDA BAL2FLG ;ROCK 2 OUT?010340 CMP #1010350 BN}E P3 ;NO!010360 JMP MOVBAL3 ;MOVE ROCK 3010370 P3 LDA ROUND ;GET ROUND010380 CMP #3 ;ROUND 3/4?010390 BC}S GRGCAN ;YES, BRING OUT GEORGE!010400 JMP MOVBAL3 ;MOVE ROCK 3!010410 ;010420 GRGCAN LDA OUTFLG ;CAN GEORGE...90 BCv0100 CMP #2 ;COME OUT?0110 BCC MOVBAL3 ;NO, DO ROCK 30120 LDA RANDOM ;GET RANDOM CHANCE...0130 BMI M}OVBAL3 ;NO, HE CAN'T0140 JMP GEORGE ;COME ON, GEORGE!0150 ;0160 MOVBAL3 LDA B3MOV ;ROCK 3 MOVING?0170 CMP #1018}0 BNE Q2 ;NO!0190 JMP MOVE3 ;MOVE IT!0200 Q2 LDA B3DRP ;ROCK 3 DROPPING?0210 CMP #10220 BEQ Q3 } ;YES!0230 LDA RANDOM ;READY TO DROP?0240 BMI Q4 ;YES!0250 RTS 0260 Q4 LDA #1 ;SET DROP FLAG}0270 STA B3DRP0280 STA BAL2FLG0290 INC OUTFLG ;INC GEORGE CHANCE0300 JSR BAL3DRW ;DRAW ROCK 30310 Q3 LD}A FNB3DRP ;IS ROCK 3...0320 CMP #1 ;DROP COMPLETE?0330 BNE DROP3 ;NO!0340 JMP GETDIR3 ;YES, GET DIRECTI}ON0350 ;0360 DROP3 JSR DOWN3 ;MOVE...0370 JSR DOWN3 ;DOWN...0380 JSR DOWN3 ;FOUR...0390 JSR DOWN3 ;TIM}ES0400 LDA YPOSP3 ;DROP DONE?0410 CMP #1090420 BCS R1 ;YES!0430 RTS 0440 R1 LDA #1 ;SET DROP}...0450 STA FNB3DRP ;FINISH FLAG0460 STA SO4FLG0470 LDA #$AF ;AND SOUND!0480 STA PITCH40490 RTS }0500 ;0510 GETDIR3 LDA #1 ;SET ROCK 3 MOVE FLAG0520 STA B3MOV0530 LDA RANDOM ;GET RANDOM CHANCE0540 BMI S1}0550 LDA #0 ;DOWN & RIGHT!0560 STA B3DIR0570 JMP MOVE3 ;MOVE IT0580 S1 LDA #1 ;DOWN & LEFT!0590 } STA B3DIR0600 ;0610 MOVE3 LDA B3DIR ;GET ROCK 3 DIRECTION0620 CMP #1 ;DOWN & LEFT?0630 BNE T1 ;NO!}0640 JMP DNLEFT3 ;MOVE IT!0650 T1 JMP DNRIGHT3 ;DITTO!0660 ;0670 GEORGE LDA #1 ;SET...0680 STA GRGFLG ;GEORGE} FLAG0690 LDA GRGMOV ;GEORGE MOVING?0700 CMP #10710 BNE U1 ;NO!0720 JMP MOVGRG ;GO MOVE HIM!0730 }U1 LDA GRGDRP ;GEORGE DROPPING?0740 CMP #10750 BEQ U2 ;YES!0760 LDA #1 ;OK, START...0770 STA }GRGDRP ;GEORGE DROP0780 JSR GEORGE0 ;GEORGE FACING LEFT0790 U2 LDA FNGRDRP ;GEORGE DROP DONE?0800 CMP #10810 } BNE DROPGRG ;NO, DROP HIM!0820 JMP GETDRGRG ;GET GEORGE DIRECTION0830 ;0840 DROPGRG JSR DOWN3 ;MOVE GEORGE...0850 } JSR DOWN3 ;DOWN...0860 JSR DOWN3 ;FOUR...0870 JSR DOWN3 ;TIMES!0880 LDA YPOSP3 ;DROP DONE?0890 }CMP #980900 BCS V1 ;YES!0910 RTS 0920 V1 LDA #1 ;SET GEORGE'S DROP...0930 STA FNGRDRP ;DONE FLAG0}940 STA SO4FLG0950 LDA #$AF ;SET SOUND0960 STA PITCH40970 RTS 0980 ;0990 GETDRGRG LDA #1 ;SET GEORGE.}..1000 STA GRGMOV ;MOVING FLAG1010 LDA PCOL ;GET DIRECTION...1020 CMP SCOL ;BASED ON PLAYER POS.1030 } BCS RIGHT ;GO RIGHT!1040 LDA PROW ;GET UP/DOWN1050 CMP SROW1060 BEQ W1 ;UP!1070 BCC W1 };UP!1080 JSR GEORGE0 ;FACING LEFT & DOWN1090 DEC SCOL ;MOVE LEFT1100 INC SROW ;MOVE DOWN...1110 INC} SROW ;2 TIMES1120 LDA #0 ;0 = DOWN & LEFT1130 STA GRDIR1140 JMP MOVGRG ;MOVE GEORGE!1150 W1 JSR GE}ORGE2 ;FACING LEFT & UP1160 DEC SCOL ;MOVE LEFT1170 DEC SROW ;MOVE UP...1180 DEC SROW ;2 TIMES1190 } LDA #2 ;2 = UP & LEFT1200 STA GRDIR1210 JMP MOVGRG ;MOVE GEORGE!1220 RIGHT LDA PROW ;GET UP/DOWN1230 } CMP SROW1240 BEQ X1 ;UP!1250 BCC X1 ;UP!1260 JSR GEORGE1 ;FACING RIGHT & DOWN1270 INC SCOL } ;MOVE RIGHT1280 INC SROW ;MOVE DOWN...1290 INC SROW ;2 TIMES1300 LDA #1 ;1 = RIGHT & DOWN1310 } STA GRDIR1320 JMP MOVGRG ;MOVE GEORGE!1330 X1 JSR GEORGE3 ;FACING RIGHT & UP1340 INC SCOL ;MOVE RIGHT1350 } DEC SROW ;MOVE UP...1360 DEC SROW ;2 TIMES1370 LDA #3 ;3 = RIGHT & UP1380 STA GRDIR1390 ;1400 }MOVGRG LDA GRDIR ;GET GEORGE DIRECTION1410 CMP #0 ;DOWN & LEFT?1420 BNE Y1 ;NO!1430 JMP DNLEFT31440} Y1 CMP #1 ;DOWN & RIGHT?1450 BNE Y2 ;NO!1460 JMP DNRIGHT31470 Y2 CMP #2 ;UP & LEFT?1480 BNE} Y3 ;NO!1490 JMP UPLEFT31500 Y3 JMP UPRIGHT31510 ;1520 ;----------------1530 ;SOUND SUBROUTINE1540 ;---------}-------1550 ;1560 SOUND LDA SO1FLG ;SOUND 1 ON?1570 CMP #11580 BEQ Z1 ;YES!1590 JMP SO2 ;NO, DO SOU}ND 21600 Z1 LDA PITCH1 ;GET SOUND 1 PITCH1610 STA AUDC11620 DEC PITCH1 ;NEXT PITCH1630 LDA PITCH1 ;GET PI}TCH1640 CMP #$A0 ;ALL DONE?1650 BEQ Z2 ;YES!1660 JMP SO21670 Z2 LDA #0 ;TURN OFF...1680 ST}A AUDC1 ;SOUND 1,1690 STA SO1FLG ;SOUND 1 FLAG,1700 STA MOVFLG ;MOVEMENT FLAG1710 LDA #81720 STA COUN}T11730 LDA P0PF ;MAN ON SQUARE?1740 CMP #01750 BNE GETLEVEL ;YES!1760 JSR FALL ;UH-OH, HE FELL!177}0 RTS ;HE'S OK1780 ;1790 GETLEVEL JSR UPDATMAN ;MOVE MAN1800 LDA LEVEL ;GO TO...1810 CMP #1 ;A}PPROPRIATE...1820 BNE AA1 ;LEVEL HANDLER!1830 JMP LEVEL11840 AA1 CMP #21850 BNE AA21860 JMP LEVEL21}870 AA2 CMP #31880 BNE AA41890 JMP LEVEL31900 AA4 CMP #41910 BNE AA51920 JMP LEVEL41930 AA5 CMP #51940} BNE AA61950 JMP LEVEL51960 AA6 CMP #61970 BNE AA71980 JMP LEVEL61990 AA7 CMP #72000 BNE AA82010 } JMP LEVEL32020 AA8 JMP LEVEL62030 ;2040 LEVEL1 LDA P0PF ;HIT2050 CMP #1 ;PLAYFIELD 0?2060 BNE BB1 ;N}O...2070 INC NUMSQ ;YES-INCREMENT SQUARES2080 JSR PLAYFLD1 ;CHANGE IT TO PF12090 BB1 JMP SO22100 ;2110 LEVEL2 }LDA P0PF ;HIT2120 CMP #1 ;PLAYFIELD 0?2130 BNE CC1 ;NO...2140 JSR PLAYFLD1 ;CHANGE IT TO PF12150 } JMP SO2 ;AND PROCEED2160 CC1 CMP #2 ;PLAYFIELD 1?2170 BNE CC2 ;NO...2180 INC NUMSQ ;1 MORE SQUARE}2190 JSR PLAYFLD2 ;CHANGE IT TO PF2!2200 CC2 JMP SO2 ;AND PROCEED2210 ;2220 LEVEL4 LDA P0PF ;HIT PLAYFIELD 0?2230} CMP #12240 BNE DD1 ;NO...2250 INC NUMSQ ;1 MORE SQUARE!2260 JSR PLAYFLD1 ;CHANGE TO PF12270 JM}P SO2 ;PROCEED!2280 DD1 DEC NUMSQ ;DEDUCT SQUARE!2290 JSR PLAYFLD0 ;BACK TO PF02300 JMP SO2 ;AND GO ON.}2310 ;2320 LEVEL3 LDA P0PF ;HIT PLAYFIELD 0?2330 CMP #12340 BNE EE1 ;NO...2350 JSR PLAYFLD1 ;CHANGE TO PF}12360 JMP SO2 ;AND PROCEED2370 EE1 CMP #2 ;HIT PLAYFIELD 2?2380 BNE EE2 ;NO...2390 JSR PLAYFLD2 };CHANGE TO PF22400 JMP SO2 ;AND PROCEED2410 EE2 CMP #4 ;HIT PLAYFIELD 2?2420 BNE SO2 ;NO...2430 }INC NUMSQ ;1 MORE SQUARE2440 JSR PLAYFLD3 ;CHANGE TO PF32450 JMP SO2 ;AND PROCEED2460 ;2470 LEVEL5 LDA P0PF} ;HIT PLAYFIELD 0?2480 CMP #12490 BNE FF1 ;NO...2500 JSR PLAYFLD1 ;CHANGE TO PF12510 JMP SO2 ;PRO}CEED2520 FF1 CMP #2 ;HIT PLAYFIELD 1?2530 BNE FF2 ;NO...2540 INC NUMSQ ;1 MORE SQUARE2550 JSR PLAY}FLD2 ;CHANGE TO PF22560 JMP SO2 ;PROCEED2570 FF2 DEC NUMSQ ;1 LESS SQUARE2580 JSR PLAYFLD1 ;CHANGE TO PF125}90 JMP SO2 ;PROCEED2600 ;2610 LEVEL6 LDA P0PF ;HIT PLAYFIELD 0?2620 CMP #12630 BNE GG1 ;NO...2640 } JSR PLAYFLD1 ;CHANGE TO PF12650 JMP SO2 ;PROCEED2660 GG1 CMP #2 ;HIT PLAYFIELD 1?2670 BNE GG2 ;NO..}.2680 JSR PLAYFLD2 ;CHANGE TO PF22690 JMP SO2 ;PROCEED2700 GG2 CMP #4 ;HIT PLAYFIELD 2?2710 BNE GG3 } ;NO...2720 INC NUMSQ ;1 MORE SQUARE2730 JSR PLAYFLD3 ;CHANGE TO PF32740 JMP SO2 ;PROCEED2750 GG3 DE}C NUMSQ ;1 LESS SQUARE2760 JSR PLAYFLD2 ;CHANGE TO PF22770 ;2780 SO2 LDX #0 ;ROCK 12790 LDY #02800 JS}R BALCHK ;SEE IF IT FELL2810 LDA FALOFF ;DID IT FALL?2820 CMP #12830 BEQ HH1 ;YES!2840 JMP SO3 };NO, PROCEED2850 HH1 LDY YPOSP1 ;ERASE ROCK 12860 LDX #02870 TXA 2880 HH2 STA PLAY1,Y2890 INX 2900 INY} 2910 CPX #102920 BNE HH22930 LDA #0 ;RESET DROP FLAG2940 STA DRP12950 LDX #0 ;CLR OTHER F}LAGS2960 JSR CLRFLG2970 ;2980 SO3 LDA GRNFLG ;GREEN MAN ACTIVE?2990 CMP #13000 BNE II99 ;NO!3010 JM}P GRNCHK ;SEE IF HE FELL3020 II99 LDX #1 ;ROCK 23030 LDY #23040 JSR BALCHK ;SEE IF IT FELL3050 LDA FALO}FF ;DID ROCK 2 FALL?3060 CMP #13070 BEQ II1 ;YES!3080 JMP SO4 ;NO, PROCEED3090 II1 LDY YPOSP2 ;ERAS}E ROCK 23100 LDX #03110 TXA 3120 II2 STA PLAY2,Y3130 INX 3140 INY 3150 CPX #103160 BNE II2317}0 LDA #0 ;RESET DROP FLAG3180 STA DRP23190 STA BAL1FLG3200 LDX #1 ;AND OTHER FLAGS3210 JSR }CLRFLG3220 ;3230 SO4 LDA GRGFLG ;GEORGE ACTIVE?3240 CMP #13250 BEQ GRGCHK ;YES!3260 LDX #2 ;CHECK ROC}K 33270 LDY #43280 JSR BALCHK ;SEE IF IT FELL3290 LDA FALOFF ;DID IT FALL?3300 CMP #13310 BEQ JJ1 } ;YES!3320 RTS 3330 JJ1 LDY YPOSP3 ;ERASE ROCK 33340 LDX #03350 TXA 3360 JJ2 STA PLAY3,Y3370 INY 3}380 INX 3390 CPX #103400 BNE JJ23410 LDA #0 ;CLEAR ROCK 3 FLAG3420 STA BAL2FLG3430 LDX #2 } ;AND OTHER FLAGS3440 JSR CLRFLG3450 RTS 3460 ;3470 GRGCHK LDA SO4FLG ;SOUND ON?3480 CMP #13490 BEQ }KK1 ;YES!3500 RTS 3510 KK1 LDA PITCH4 ;SET VOLUME3520 STA AUDC43530 DEC PITCH4 ;NEXT VOLUME3540 LD}A PITCH4 ;SOUND DONE?3550 CMP #$A03560 BEQ KK2 ;YES!3570 RTS 3580 KK2 LDA P3PF ;DID GEORGE...3590 } CMP #0 ;HIT PF?3600 BNE KK3 ;YES!3610 LDA #5 ;ADD 500 POINTS...3620 STA SUM ;TO SCORE3630} JSR ADD2003640 JSR RESET ;RESET GEORGE3650 RTS 3660 KK3 LDA #0 ;ZERO...3670 STA AUDC4 ;SOUND 4,}3680 STA SO4FLG ;SOUND 4 FLAG3690 STA GRGMOV ;GEORGE MOVE FLAG3700 LDA #83710 STA COUNT43720 RTS }3730 ;3740 GRNCHK LDA SO3FLG ;SOUND 3 ON?3750 CMP #13760 BEQ LL1 ;YES!3770 JMP SO4 ;NO, DO SOUND 437}80 LL1 LDA PITCH3 ;SET SOUND 3 VOLUME3790 STA AUDC33800 DEC PITCH3 ;NEXT VOLUME3810 LDA PITCH3 ;SOUND 3 DON }E?3820 CMP #$A03830 BEQ LL2 ;YES!3840 JMP SO4 ;NO, DO SOUND 43850 LL2 LDA #0 ;TURN OFF SOUND 33 }860 STA AUDC33870 LDA P2PF ;DID GREEN MAN...3880 CMP #0 ;HIT PLAYFIELD?3890 BNE GOBACK ;YES!3900 } HITGRN JSR ERASEGRN ;GREEN MAN GONE3910 LDA #0 ;RESET GREEN MAN3920 STA GRNDRP3930 STA GRNFNDRP3940  } STA GRNFLG3950 STA GRNMOV3960 STA SO3FLG3970 STA DRP23980 LDA #10 ;RESET ROW3990 STA GROW4000  } LDA #8 ;RESET COLUMN4010 STA GCOL4020 STA COUNT34030 LDA #454040 STA YPOSP24050 LDA #11640}60 STA HPOSP24070 STA XPOSP24080 RTS 4090 GOBACK LDA #0 ;RESET SOUND 34100 STA SO3FLG4110 STA GRNM}OV4120 LDA #84130 STA COUNT34140 LDA P2PF ;DID GREEN HIT PF0?4150 CMP #14160 BNE MM4 ;NO!417}0 RTS 4180 MM4 JSR DECNUM ;DEC # SQUARES4190 LDA # PF04220} STA FILE+14230 LDA GCOL ;SET COLUMN4240 STA COL4250 LDA GROW ;AND ROW4260 STA ROW4270 JSR} CHANGE ;CHANGE IT!4280 RTS 4290 DECNUM LDA LEVEL ;GET LEVEL4300 CMP #14310 BEQ NN1 ;LEVEL 14320 CM}P #24330 BEQ NN2 ;LEVEL 24340 CMP #34350 BEQ NN4 ;LEVEL 34360 CMP #44370 BEQ NN1 ;LEVEL }44380 CMP #54390 BEQ NN2 ;LEVEL 54400 JMP NN4 ;LEVEL 64410 ;4420 NN1 LDA P2PF ;HIT PF1?4430 }CMP #24440 BEQ DECR ;YES!4450 RTS 4460 NN2 LDA P2PF ;HIT PF2?4470 CMP #44480 BEQ DECR ;YES!449}0 RTS 4500 NN4 LDA P2PF ;HIT PF3?4510 CMP #84520 BEQ DECR ;YES!4530 RTS 4540 DECR DEC NUMSQ ;1 LE}SS SQUARE4550 RTS 4560 BALCHK LDA SO2FLG,X ;SOUND 2 ON?4570 CMP #14580 BEQ OO1 ;YES!4590 RTS 4600 O}O1 LDA PITCH2,X ;SET VOLUME4610 STA AUDC2,Y4620 DEC PITCH2,X ;NEXT VOLUME4630 LDA PITCH2,X ;ALL DONE?4640 } CMP #$A04650 BEQ OO2 ;YES!4660 RTS 4670 OO2 LDA #0 ;TURN OFF...4680 STA AUDC2,Y ;SOUND 24690 L}DA P1PF,X ;DID ROCK...4700 CMP #0 ;HIT PF?4710 BNE OO3 ;YES!4720 LDA #1 ;UH-OH! IT FELL!4730 } STA FALOFF ;SET FALL FLAG4740 RTS 4750 OO3 LDA #0 ;RESET SOUND FLAG4760 STA SO2FLG,X4770 STA B1MOV,}X4780 LDA #84790 STA COUNT2,X4800 RTS 4810 ;4820 CLRFLG LDA #$00 ;RESET MISC FLAGS4830 STA B1MOV,X4840} STA SO2FLG,X4850 STA B1DRP,X4860 STA FNB1DRP,X4870 STA FALOFF4880 LDA #84890 STA COUNT2,X4900 } LDA #454910 STA YPOSP1,X4920 LDA HPOS,X4930 STA HPOSP1,X4940 STA XPOSP1,X4950 RTS 4960 ;4970 U}PDATMAN LDA DIRECT ;GET DIR...4980 CMP #94990 BEQ PP1 ;DOWN & LEFT5000 CMP #55010 BEQ PP2 ;DOWN & } RIGHT5020 CMP #65030 BEQ PP4 ;UP & RIGHT5040 CMP #105050 BEQ PP3 ;UP & LEFT5060 RTS 5070 ;!}5080 PP1 DEC PCOL ;MOVE LEFT5090 INC PROW ;MOVE DOWN...5100 INC PROW ;2 TIMES5110 RTS 5120 PP2 INC "}PCOL ;MOVE RIGHT5130 INC PROW ;MOVE DOWN...5140 INC PROW ;2 TIMES5150 RTS 5160 PP3 DEC PCOL ;MOVE#} LEFT5170 DEC PROW ;MOVE UP...5180 DEC PROW ;2 TIMES5190 RTS 5200 PP4 INC PCOL ;MOVE RIGHT5210 $}DEC PROW ;MOVE UP...5220 DEC PROW ;2 TIMES5230 RTS 5240 ;5250 PCUBPOS LDA PCOL ;SAVE SQUARE POS.5260 S%}TA COL5270 LDA PROW5280 STA ROW5290 RTS 5300 ;5310 ;-----5320 ;DELAY5330 ;-----5340 DELAY LDX #$FF ;TIME&} DELAY5350 QQ1 LDY TIME5360 QQ2 DEY 5370 BNE QQ25380 DEX 5390 BNE QQ15400 RTS 5410 ;5420 ;-----------'}--5430 ;SETUP ROUTINE5440 ;-------------5450 ;5460 SETUP LDA START ;INIT ALL?5470 CMP #$005480 BNE PART ;NO.(}..5490 LDA #$00 ;YES...5500 STA NUMSQ5510 LDA #$10 ;RESET5520 LDX #0 ;SCORE...5530 RESET1 STA)} SCORE,X5540 INX 5550 CPX #$065560 BNE RESET15570 ;5580 PART LDA #$00 ;SET FLG'S5590 LDX #0 ;TO *}ZERO..5600 SETZERO STA BACK,X5610 INX 5620 CPX #1005630 BNE SETZERO5640 LDA #$08 ;SET COUNT5650 +}STA COUNT15660 STA COUNT25670 STA COUNT35680 STA COUNT45690 ;5700 LDA #9 ;SET PLAYER5710 STA P,}COL ;COLUMN &5720 LDA #8 ;ROW...5730 STA PROW5740 ;5750 LDA #10 ;SET GEORGE5760 STA SCOL -};&GREEN5770 STA SROW ;COLUMN...5780 STA GROW5790 LDA #85800 STA GCOL5810 ;5820 LDA #124 ;PM D.}ATA..5830 STA PXPOS5840 STA HPOSP05850 LDA #855860 STA PYPOS5870 LDA #1165880 STA XPOSP15890 /} STA XPOSP25900 STA HPOSP15910 STA HPOSP25920 STA HPOS5930 STA HPOS+15940 LDA #1325950 STA XP0}OSP35960 STA HPOS+25970 STA HPOSP35980 LDA #455990 STA YPOSP16000 STA YPOSP26010 STA YPOSP36021}0 ;6030 CLC ;SET UP...6040 LDA #170 ;SOUND...6050 STA AUDF1 ;FREQUENCIES6060 ADC #106070 2} STA AUDF26080 ADC #106090 STA AUDF36100 ADC #106110 STA AUDF46120 ;6130 LDA #$01 ;CLR COLLISIO3}NS6140 STA HITCLR6150 ;6160 PMCLR LDA #$00 ;ERASE P/M6170 LDX #$FF ;MEMORY6180 ERASEMEM STA PLAY0,X6190 4} STA PLAY1,X6200 STA PLAY2,X6210 STA PLAY3,X6220 DEX 6230 BNE ERASEMEM6240 RTS ;RETURN...625}50 ;6260 ;---------------6270 ;FIGURES FOR MAN6280 ;---------------6290 ;6300 FIG1 LDA DIRFLG ;GET MOVE DIRECTION6310 6} CMP #9 ;DOWN & LEFT?6320 BEQ RR2 ;YES!6330 LDY PYPOS ;DRAW FIGURE 16340 LDX #06350 RR1 LDA FIG17}DAT,X6360 STA PLAY0,Y6370 INY 6380 INX 6390 CPX #166400 BNE RR16410 RR2 RTS 6420 ;6430 FIG2 LDA D8}IRFLG ;GET MOVE DIRECTION6440 CMP #5 ;DOWN & RIGHT?6450 BEQ SS2 ;YES!6460 JSR ERASEMAN ;ERASE MAN6479}0 LDY PYPOS ;DRAW FIGURE 26480 LDX #06490 SS1 LDA FIG2DAT,X6500 STA PLAY0,Y6510 INY 6520 INX 6530:} CPX #166540 BNE SS16550 SS2 RTS 6560 ;6570 FIG3 LDA DIRFLG ;GET DIRECTION6580 CMP #10 ;UP & LEFT?6590 ;} BEQ TT2 ;YES!6600 JSR ERASEMAN ;ERASE MAN6610 LDY PYPOS ;DRAW FIGURE 36620 LDX #06630 TT1 LDA FIG3D<}AT,X6640 STA PLAY0,Y6650 INY 6660 INX 6670 CPX #156680 BNE TT16690 TT2 RTS 6700 ;6710 FIG4 LDA DI=}RFLG ;GET DIRECTION6720 CMP #6 ;UP & RIGHT?6730 BEQ UU2 ;YES!6740 JSR ERASEMAN ;ERASE MAN6750 LD>}Y PYPOS ;DRAW FIGURE 46760 LDX #06770 UU1 LDA FIG4DAT,X6780 STA PLAY0,Y6790 INY 6800 INX 6810 CPX?} #156820 BNE UU16830 UU2 RTS 6840 GRN0 JSR ERASEGRN ;ERASE GREEN MAN6850 LDY YPOSP2 ;DRAW GREEN MAN...6860 @}LDX #$00 ;FACING RIGHT6870 VV1 LDA GRN1DAT,X6880 STA PLAY2,Y6890 INX 6900 INY 6910 CPX #136920 BA}NE VV16930 JSR SETGRN ;SET GREEN PARAMETERS6940 RTS 6950 ;6960 GRN1 JSR ERASEGRN ;ERASE GREEN MAN6970 LDY YB}POSP2 ;DRAW GREEN MAN...6980 LDX #0 ;FACING LEFT6990 WW1 LDA GRN2DAT,X7000 STA PLAY2,Y7010 INY 7020 C} INX 7030 CPX #137040 BNE WW17050 JSR SETGRN ;SET GREEN PARAMETERS7060 RTS 7070 ;7080 ERASEGRN LDY YPD}OSP2 ;ERASE GREEN MAN7090 LDX #07100 TXA 7110 XX1 STA PLAY2,Y7120 INX 7130 INY 7140 CPX #157150 E} BNE XX17160 RTS 7170 ;7180 SETGRN LDA #13 ;GREEN 13 LINES TALL7190 STA LENGTH7200 LDA #117210 STA ADF}DNUM7220 LDA #198 ;AND HE'S GREEN!7230 STA PCOLR27240 RTS 7250 ;7260 ;7270 ;ERASE MAN SUB7280 ;7290 ERG}ASEMAN LDY PYPOS7300 LDX #$007310 LDA #$007320 YY1 STA PLAY0,Y7330 INY 7340 INX 7350 CPX #207360 H} BNE YY17370 RTS 7380 ;7390 ;FIGURES FOR GEORGE !!7400 ;7410 GEORGE0 JSR ERASEGRG ;ERASE GEORGE7420 LDY YPOSPI}3 ;DRAW GEORGE...7430 LDX #0 ;IN POSISION 07440 ZZ1 LDA GRG0DAT,X7450 STA PLAY3,Y7460 INY 7470 INXJ} 7480 CPX #187490 BNE ZZ17500 JSR SETGRG ;SET GEORGE PARAMETERS7510 RTS 7520 ;7530 GEORGE1 JSR ERASEGRK}G ;ERASE GEORGE7540 LDY YPOSP3 ;DRAW GEORGE...7550 LDX #0 ;IN POSITION 17560 AAA1 LDA GRG1DAT,X7570 STAL} PLAY3,Y7580 INY 7590 INX 7600 CPX #187610 BNE AAA17620 RTS 7630 ;7640 GEORGE2 JSR ERASEGRG ;ERASEM} GEORGE7650 LDY YPOSP3 ;DRAW GEORGE...7660 LDX #0 ;IN POSITION 27670 BBB1 LDA GRG2DAT,X7680 STA PLAY3,YN}7690 INY 7700 INX 7710 CPX #187720 BNE BBB17730 RTS 7740 ;7750 GEORGE3 JSR ERASEGRG ;ERASE GEORGEO}7760 LDY YPOSP3 ;DRAW GEORGE...7770 LDX #0 ;IN POSITION 37780 CCC1 LDA GRG3DAT,X7790 STA PLAY3,Y7800 P} INY 7810 INX 7820 CPX #187830 BNE CCC17840 RTS 7850 ;7860 SETGRG LDA #19 ;GEORGE 19 LINES TALL7870 Q} STA LENGTH37880 LDA #167890 STA ADDNUM37900 LDA #86 ;GEORGE PURPLE!7910 STA PCOLR37920 RTS R}7930 ;7940 ERASEGRG LDY YPOSP3 ;ERASE GEORGE7950 LDX #07960 TXA 7970 DDD1 STA PLAY3,Y7980 INY 7990 INX S}8000 CPX #208010 BNE DDD18020 RTS 8030 ;8040 ;-----------------8050 ;CHANGE SQUARE SUB8060 ;--------------T}---8070 ;8080 CHANGE LDA ROW ;GET ROW,8090 STA LO ;SAVE IN...8100 LDA #0 ;MULT AREA8110 STA HI81U}20 ASL LO ;*28130 ASL LO ;*48140 LDA LO ;SAVE *4 VALUE8150 STA TIMES48160 ASL LO V};*88170 ASL LO ;*168180 ROL HI8190 LDA LO ;+*4 = *208200 CLC 8210 ADC TIMES48220 STA W}LO8230 LDA HI8240 ADC #08250 STA HI8260 LDA LO ;NOW ADD COLUMN8270 CLC 8280 ADC COL8290 X} STA LO8300 LDA HI8310 ADC #08320 STA HI8330 LDA LO ;NOW DISPLAY START8340 CLC 8350 ADC Y}# DISP8390 STA HI8400 LDY #18410 LDA (FILE),Y ;GET RIGHTZ} OF SQUARE8420 STA (LO),Y ;PUT ON SCREEN8430 DEY 8440 LDA (FILE),Y ;GET LEFT OF SQUARE8450 STA (LO),Y ;[}PUT ON SCREEN8460 RTS ;ALL DONE!8470 ;8480 ;-------------8490 ;FALL OFF SUB8500 ;-------------8510 FALL LDA\} #$04 ;SET PRIOR8520 STA PRIOR8530 LDA #28540 STA TIME8550 JSR TURNOFF8560 LDA #$AA8570 STA A]}UDC18580 EEE1 LDA PYPOS ;GET YPOS8590 STA AUDF1 ;MAKE SO...8600 CMP #240 ;OFF SCR...8610 BEQ ENDLP ;Y^}ES...8620 JSR DOWN0 ;NO...8630 JSR DELAY ;DELAY...8640 JMP EEE1 ;DO AGAIN8650 ENDLP LDA #$6F8660 _}STA AUDC18670 CLC 8680 LDA #1308690 FFF1 STA AUDF18700 ADC #18710 JSR DELAY8720 CMP #2108730 B`}NE FFF18740 LDA #$008750 STA AUDF18760 STA AUDC18770 LDA #3 ;3=FALL8780 STA BACK8790 RTS a}8800 ;---------8810 ;DRAW ROCK8820 ;---------8830 BAL1DRW LDY YPOSP1 ;DRAW ROCK 18840 LDX #$008850 GGG1 LDA BALDAT,Xb}8860 STA PLAY1,Y8870 INY 8880 INX 8890 CPX #108900 BNE GGG18910 RTS 8920 ;8930 BAL2DRW LDY YPc}OSP2 ;DRAW ROCK 28940 LDX #08950 HHH1 LDA BALDAT,X8960 STA PLAY2,Y8970 INX 8980 INY 8990 CPX #1090d}00 BNE HHH19010 LDA #10 ;SET ROCK PARAMS9020 STA LENGTH ;(INSTEAD OF...9030 LDA #8 ;GREEN MAN)9e}040 STA ADDNUM9050 LDA #529060 STA PCOLR29070 RTS 9080 ;9090 BAL3DRW LDY YPOSP3 ;DRAW ROCK 39100 LDf}X #09110 III1 LDA BALDAT,X9120 STA PLAY3,Y9130 INY 9140 INX 9150 CPX #109160 BNE III19170 LDA g}#10 ;SET ROCK PARAMS9180 STA LENGTH3 ;(INSTEAD OF...9190 LDA #8 ;GEORGE!)9200 STA ADDNUM39210 LDh}A #529220 STA PCOLR39230 RTS 9240 ;9250 ;-------------9260 ;MOVEMENT SUBS9270 ;-------------9280 ;9290 DNLEFTi}0 JSR FIG1 ;SHAPE...9300 LDA #19310 STA MOVFLG9320 JSR LEFT0 ;MOVE...9330 JSR DOWN09340 JSR DOWN0j}9350 DEC COUNT19360 BNE JJJ19370 JSR SETFLG0 ;RETURN9380 JJJ1 RTS 9390 ;9400 DNRIGHT0 JSR FIG2 ;SHAPE...941k}0 LDA #19420 STA MOVFLG9430 JSR RIGHT0 ;MOVE...9440 JSR DOWN09450 JSR DOWN09460 DEC COUNT1 ;DOl}NE...9470 BNE KKK1A MOVFLG9430 JSR RIGHT0 ;MOVE...9440 JSR DOWN09450 JSR DOWN09460 DEC COUNT1 ;DO0100 JSR SETFLG0 ;RETURN0110 KKK1 RTS 0120 ;0130 UPLEFT0 JSR FIG3 ;SHAPE...0140 LDA #10150 STA MOVFLG0160 n} JSR LEFT0 ;MOVE...0170 JSR UP00180 JSR UP00190 DEC COUNT1 ;DONE???0200 BNE LLL10210 JSR SETFLGo}0 ;SETFLG...0220 LLL1 RTS 0230 ;0240 UPRIGHT0 JSR FIG4 ;SHAPE...0250 LDA #10260 STA MOVFLG0270 JSR RIGHT0 p};MOVE...0280 JSR UP00290 JSR UP00300 DEC COUNT1 ;DONE???0310 BNE MMM10320 JSR SETFLG00330 MMM1 RTSq} 0340 ;0350 LEFT0 DEC PXPOS ;MOVE MAN LEFT0360 LDA PXPOS0370 STA HPOSP00380 RTS 0390 ;0400 RIGHT0 INC PXPOr}S ;MOVE MAN RIGHT0410 LDA PXPOS0420 STA HPOSP00430 RTS 0440 ;0450 UP0 LDY PYPOS ;MOVE MAN UP0460 LDX s}#$000470 NNN1 LDA PLAY0,Y0480 STA PLAY0-1,Y0490 INX 0500 INY 0510 CPX #170520 BNE NNN10530 DECt} PYPOS0540 RTS 0550 ;0560 DOWN0 LDX #0 ;MOVE MAN DOWN0570 CLC 0580 LDA PYPOS0590 ADC #140600 TAu}Y 0610 OOO1 LDA PLAY0,Y0620 STA PLAY0+1,Y0630 DEY 0640 INX 0650 CPX #170660 BNE OOO10670 INC Pv}YPOS0680 RTS 0690 ;0700 ;ROCK 1 MOVEMENT0710 ;0720 DNLEFT1 JSR LEFT1 ;MOVE LEFT,0730 JSR DOWN1 ;MOVE DOWN...w}0740 JSR DOWN1 ;2 TIMES0750 DEC COUNT20760 BNE PPP10770 LDX #00780 JSR SETFLG ;SET UP SOUND0790 Px}PP1 RTS 0800 ;0810 DNRIGHT1 JSR RIGHT1 ;MOVE RIGHT,0820 JSR DOWN1 ;MOVE DOWN...0830 JSR DOWN1 ;2 TIMES0840 y} DEC COUNT20850 BNE QQQ10860 LDX #00870 JSR SETFLG ;SET UP SOUND0880 QQQ1 RTS 0890 ;0900 LEFT1 DEC XPOSPz}1 ;MOVE ROCK 1 LEFT0910 LDA XPOSP10920 STA HPOSP10930 RTS 0940 ;0950 RIGHT1 INC XPOSP1 ;MOVE ROCK 1 RIGHT09{}60 LDA XPOSP10970 STA HPOSP10980 RTS 0990 ;1000 ;1010 DOWN1 LDX #0 ;MOVE PLAYER 1 DOWN1020 CLC 1030|} LDA YPOSP11040 ADC #81050 TAY 1060 RRR1 LDA PLAY1,Y1070 STA PLAY1+1,Y1080 DEY 1090 INX 1100 }} CPX #101110 BNE RRR11120 INC YPOSP11130 RTS 1140 ;1150 ;1160 ;ROCK 2 MOVEMENT1170 ;1180 ;SAME AS ROCK ~}1, BUT FOR ROCK 21190 ;1200 DNLEFT2 JSR LEFT21210 JSR DOWN21220 JSR DOWN21230 DEC COUNT31240 BNE SSS11}250 LDX #11260 JSR SETFLG1270 SSS1 RTS 1280 ;1290 DNRIGHT2 JSR RIGHT21300 JSR DOWN21310 JSR DOWN21320 } DEC COUNT31330 BNE TTT11340 LDX #11350 JSR SETFLG1360 TTT1 RTS 1370 ;1380 LEFT2 DEC XPOSP21390 LDA} XPOSP21400 STA HPOSP21410 RTS 1420 ;1430 RIGHT2 INC XPOSP21440 LDA XPOSP21450 STA HPOSP21460 RTS }1470 ;1480 DOWN2 LDX #01490 CLC 1500 LDA YPOSP21510 ADC ADDNUM1520 TAY 1530 UUU1 LDA PLAY2,Y1540 }STA PLAY2+1,Y1550 DEY 1560 INX 1570 CPX LENGTH1580 BNE UUU11590 INC YPOSP21600 RTS 1610 ;1620} ;ROCK 3 MOVEMENT1630 ;1640 ;SAME AS ROCK 1, BUT FOR ROCK 31650 ;1660 DNLEFT3 JSR LEFT31670 JSR DOWN31680 JSR D}OWN31690 DEC COUNT41700 BNE VVV11710 LDX #21720 JSR SETFLG1730 VVV1 RTS 1740 ;1750 DNRIGHT3 JSR RIGHT3}1760 JSR DOWN31770 JSR DOWN31780 DEC COUNT41790 BNE WWW11800 LDX #21810 JSR SETFLG1820 WWW1 RT}S 1830 ;1840 UPLEFT3 JSR LEFT31850 JSR UP31860 JSR UP31870 DEC COUNT41880 BNE XXX11890 LDX #21900} JSR SETFLG1910 XXX1 RTS 1920 ;1930 UPRIGHT3 JSR RIGHT31940 JSR UP31950 JSR UP31960 DEC COUNT41970 } BNE YYY11980 LDX #21990 JSR SETFLG2000 YYY1 RTS 2010 ;2020 LEFT3 DEC XPOSP32030 LDA XPOSP32040 STA HP}OSP32050 RTS 2060 ;2070 RIGHT3 INC XPOSP32080 LDA XPOSP32090 STA HPOSP32100 RTS 2110 ;2120 UP3 LDY YP}OSP32130 LDX #02140 ZZZ1 LDA PLAY3,Y2150 STA PLAY3-1,Y2160 INY 2170 INX 2180 CPX LENGTH32190 B}NE ZZZ12200 DEC YPOSP32210 RTS 2220 ;2230 DOWN3 LDX #02240 CLC 2250 LDA YPOSP32260 ADC ADDNUM3227}0 TAY 2280 AAAA1 LDA PLAY3,Y2290 STA PLAY3+1,Y2300 DEY 2310 INX 2320 CPX LENGTH32330 BNE AAAA1}2340 INC YPOSP32350 RTS 2360 ;2370 SETFLG0 LDA #1 ;SET FLG2380 STA SO1FLG2390 STA MOVFLG2400 LDA #}$AF2410 STA PITCH1 ;PITCH...2420 LDA DIRECT2430 STA DIRFLG2440 RTS 2450 ;2460 SETFLG LDA #12470 S}TA SO2FLG,X2480 LDA #$AF2490 STA PITCH2,X ;PITCH...2500 RTS 2510 ;2520 PLAYFLD0 LDA # PF02550 DOSQUARE STA FILE+12560 JSR ADD25 ;ADD 25 POINTS2570 JS}R PCUBPOS ;GET CUBE POS2580 JSR CHANGE ;CHANGE COLOR2590 RTS 2600 ;2610 PLAYFLD1 LDA # PF12640 JMP DOSQUARE ;DO MISC STUFF2650 ;2660 PLAYFLD2 LDA # PF22690 JMP DOSQUARE ;DO MISC STUFF2700 ;2710 PLAYFLD3 LDA} # PF32740 JMP DOSQUARE ;ETC.2750 ;2760 CLEAR L}DA #$01 ;RESET COLLISIONS2770 STA HITCLR2780 RTS 2790 ;2800 TURNOFF LDA #$00 ;NO AUDIO...2810 STA AUDC2 ;}ON CHANNELS...2820 STA AUDF2 ;2, 3, 4!2830 STA AUDC32840 STA AUDF32850 STA AUDC42860 STA AUDF4287}0 RTS 2880 ;2890 PL.PL LDA P0PL ;DID MAN...2900 CMP #1 ;HIT PLAYER 0?2910 BCC BBBB1 ;NO!2920 CMP} #4 ;HIT PLAYER 2?2930 BNE BBBB2 ;NO!2940 LDA GRNFLG ;GREEN MAN ACTIVE?2950 CMP #12960 BNE BBBB2 } ;NO!2970 JSR HITGRN ;CLOBBER GREEN MAN!2980 LDA #2 ;AWARD 200 POINTS!2990 STA SUM3000 JSR ADD200}3010 JMP BBBB13020 BBBB2 LDA P0PL ;DID MAN HIT...3030 CMP #8 ;PLAYER 3?3040 BNE BBBB8 ;NO!3050 LD}A GRGFLG ;GEORGE ACTIVE?3060 CMP #13070 BEQ BBBB1 ;YES!3080 BBBB8 LDA WARN13090 CMP #43100 BEQ BBBB7}3110 INC WARN13120 RTS 3130 BBBB7 LDA #2 ;DEATH DUE TO...3140 STA BACK ;GEORGE!3150 RTS 3160 BBBB1} LDA #03170 STA WARN13180 LDA GRGFLG3190 CMP #13200 BNE RET3210 LDA P3PL3220 CMP #13230 BN}E BBBB53240 LDA WARN3250 CMP #43260 BEQ BBBB63270 INC WARN3280 RTS 3290 BBBB6 LDA #23300 STA B}ACK3310 RTS 3320 BBBB5 LDA #03330 STA WARN3340 LDA P3PL3350 CMP #23360 BCC RET3370 CMP #43380} BNE RESET3390 LDA GRNFLG3400 CMP #13410 BEQ RET3420 RESET JSR ERASEGRG ;ERASE GEORGE3430 LDA #0 } ;CLEAR GEORGE...3440 STA GRGFLG ;VARIABLES3450 STA SO4FLG3460 STA FNGRDRP3470 STA GRGDRP3480 STA }OUTFLG3490 STA GRGMOV3500 LDA #103510 STA SCOL3520 STA SROW3530 LDA #83540 STA COUNT43550 }LDA #453560 STA YPOSP33570 LDA #1323580 STA XPOSP33590 STA HPOSP33600 RET RTS 3610 ;3620 ;3630 CHECK }LDA NUMSQ ;GET SQUARES HIT3640 CMP #28 ;ALL DONE?3650 BNE CCCC1 ;NO!3660 LDA #1 ;ROUND COMPLETED!3}670 STA BACK3680 CCCC1 RTS 3690 ;3700 ;---------------3710 ;SCORE ROUTINES3720 ;---------------3730 ADD25 LDY #5 } ;ADD 25 POINTS3740 CLC ;TO SCORE3750 LDA SCORE,Y3760 ADC #53770 CMP #$1A3780 BNE DDDD13790} LDA #$103800 STA DISP,Y3810 STA SCORE,Y3820 DEY 3830 LDA SCORE,Y3840 CLC 3850 ADC #13860 } STA SCORE,Y3870 JMP DDDD23880 DDDD1 LDA #$153890 STA DISP,Y3900 STA SCORE,Y3910 DEY 3920 DDDD2 LDA }SCORE,Y3930 CLC 3940 ADC #23950 CMP #$1A3960 BEQ DDDD33970 STA DISP,Y3980 STA SCORE,Y3990 }RTS 4000 DDDD3 LDA #$104010 STA DISP,Y4020 STA SCORE,Y4030 DEY 4040 LDA SCORE,Y4050 CLC 4060 A}DC #14070 CMP #$1A4080 BEQ DDDD34090 STA DISP,Y4100 STA SCORE,Y4110 RTS 4120 ;4130 ADD200 LDY #3 } ;ADD SUM * 100...4140 CLC ;TO SCORE4150 LDA SCORE,Y4160 ADC SUM4170 CMP #$1A4180 BCC EEEE1}4190 EEEE2 SEC 4200 SBC #$1A4210 STA ADD4220 EEEE3 CLC 4230 LDA #$104240 ADC ADD4250 STA DISP,Y426}0 STA SCORE,Y4270 LDA #04280 STA ADD4290 DEY 4300 CLC 4310 LDA SCORE,Y4320 ADC #14330 }CMP #$1A4340 BEQ EEEE34350 EEEE1 STA DISP,Y4360 STA SCORE,Y4370 RTS 4380 ;4390 ;CHARACTER IMAGES4400 ;(MAN}, GREEN MAN, GEORGE, ROCKS)4410 ;4420 FIG1DAT .BYTE 12,30,63,43,43,634430 .BYTE 43,55,30,30,18,18,274440 .BYTE 54},108,724450 FIG2DAT .BYTE 48,120,252,212,2124460 .BYTE 252,212,236,120,120,724470 .BYTE 72,216,108,54,184480 FIG3}DAT .BYTE 14,31,55,55,31,154490 .BYTE 31,31,14,10,46,62,274500 .BYTE 13,44510 FIG4DAT .BYTE 112,248,236,236,24845}20 .BYTE 240,248,248,112,80,1164530 .BYTE 124,216,176,324540 GRN1DAT .BYTE 160,80,40,60,126,1064550 .BYTE 126,}118,60,60,36,544560 GRN2DAT .BYTE 5,10,20,60,126,864570 .BYTE 126,110,60,60,36,1084580 GRG0DAT .BYTE 12,30,30,255,434}590 .BYTE 43,255,255,45,51,634600 .BYTE 30,18,18,27,54,108,04610 GRG1DAT .BYTE 48,120,120,255,212,2124620 .BYT}E 255,255,180,204,252,1204630 .BYTE 72,72,216,108,54,04640 GRG2DAT .BYTE 12,30,30,255,474650 .BYTE 47,255,127,47,3}1,634660 .BYTE 30,18,18,126,54,27,04670 GRG3DAT .BYTE 48,120,120,255,2444680 .BYTE 244,255,254,244,248,2524690 } .BYTE 120,72,72,126,108,216,04700 BALDAT .BYTE 24,60,126,255,2554710 .BYTE 255,126,60,24,04720 ;4730 ;SQUARES !!!4}740 ;4750 PF0 .BYTE $03,$044760 PF1 .BYTE $43,$444770 PF2 .BYTE $83,$844780 PF3 .BYTE $C3,$C44790 ;4800 ;DISPLAY LIST4}810 ;4820 DLIST .BYTE $70,$70,$70,$464830 .WORD DISP4840 .BYTE 6,6,$86,6,$86,$86,$86,6,6,64850 .BYTE 6,6,6,6,}6,6,6,6,6,64860 .BYTE 6,6,6,$414870 .WORD DLIST4880 RDYMSG .SBYTE +$80,"READY %%"4890 LVMSG .SBYTE "LeVeL"4900 E}NDMSG .SBYTE +$80,"GAME OVER"4910 CHGMSG .SBYTE "CHANGE"4920 LVLMSG .SBYTE +$80,"level:"4930 RNDMSG .SBYTE +$80,"round:"4}940 BONMSG .SBYTE +$80,"BONUS"4950 .SBYTE " 1000"4960 TITLE .SBYTE " AVALANCHE "4970 AUTHOR .SBYTE "BY TOMMY BENN}ETT"4980 MAGMSG .SBYTE +$80,"ANALOG COMPUTING"4990 ;5000 ;MISC. DATA5010 ;5020 R1SET .BYTE 0,15,90,4,1565030 R2SET .BYT}E 0,134,246,12,1465040 R3SET .BYTE 0,26,164,118,845050 R4SET .BYTE 0,196,66,34,1025060 ;5070 ;CHAR SET DATA5080 ;5090 N}EWCHR .BYTE 3,15,63,127,63,15,3,05100 .BYTE 192,240,252,254,252,240,192,05110 .BYTE 0,6,12,24,48,0,96,05120 .B}YTE 12,30,63,43,63,30,18,545130 .BYTE 8,12,126,127,126,12,8,05140 .BYTE 16,48,126,254,126,48,16,05150 ;5160 ;JUMP}ING PADS5170 ;5180 PADATA .BYTE 3,4,3,4,3,4,3,45190 .BYTE 3,4,3,4,3,45200 ;5210 ;MUSIC DATA5220 ;5230 NOTE .BYTE 6}0,47,0,47,60,72,60,05240 .BYTE 72,64,72,64,72,64,0,815250 .BYTE 72,81,72,81,725260 DUR .BYTE 11,14,7,11,7,7,7,752}70 .BYTE 7,7,7,7,7,7,7,75280 .BYTE 7,7,7,7,70,815250 .BYTE 72,81,72,81,725260 DUR .BYTE 11,14,7,11,7,7,7,7526OP0KK25K25KAFILELINEPPHOLDFNSCREEDRAMTOBYTEHLIIIAPMBAS}@ }ǠĠŠ!!: IF NEW SCREEN THEN D}RAW A : BLANK SCREEN AND PUT THE!!: CURSOR ON THE FIRST LINE.##: IF OLD SCREEN THEN LOAD THE%%: SELECT}ED SCREEN, GOTO EDITOR,: AND SAVE OVER OLD FILE. K6-@6-AU#6-%- @ 9ARK( }IN}ITIALIZING;;;,;@,9@%,;@@,;,;@,Z'6-F:@,%$F:@,%@@5-@#>6}8,-L6-%@@P Z A1ΠՠΠY @ +#AY@b5B2w@C0@}M BY@[( ('(*** ANALOG CARD FILE ****(96.>:@,H67@@,.W67@,.[(Q+(#AFTE}R SCREEN IS LOADED, TYPE ON THEQ(!SCREEN AS DESIRED. START=SAVE TO//('DISK. OPTION=START OVER WITHOUT SAVING+$(S}ELECT=PRINT OUT THE SCREEN.'(+(m('(EW OR LD SCREEN, IRECTORY>(OR URGE A CARD: CW@K:d)}@m6.>:,(4OA-4PA24DA <0N@0cנΠŠdH }